今天学习目标是.service .presentation两层。
一、NPetshop.Presentation
记得在Peshop4.0中有用到Facde设计模式,可以很好的使用分层结构,Presentation应该也是起这个作用;在Npetshop中,我看这层所属文件名后都带有‘Action’字样,action在这里是什么意思?活动、动态?
1.UserControl.cs
所有用户控件都继承自它。某些子控件中仍有其他子控件,比如startup.ascx就包含了SideBar.ascx子控件,因为Npetshop中是将页面作为'容器'来设计的,所以必须将子控件的CurrentController指向页面,便于管理,代码如下:
1
public IController CurrentController
2
}
2
UserControl类还有重要属性:WebLocalSingleton ,该类位于Npetshop.Presentation.Core命名空间。这是一种单态设计模式,确保每个类只有一个实例,并提供它的全局访问点 。
2.WebLocalSingleton.cs
通过静态方法以及context上下文信息,以确保在任何时间都只返回一个实例,如代码:
1
private HttpContext _context;
2
static readonly private object _synRoot = new Object();
3
4
}
同时,在该类还保存了当前context下的Action 、Account、ShoppingCart、Order、IPaginatedList 数据,在这里让我费解的就是为何要将IPaginatedList对象放入到该context中,因为它不需要被全局使用,应该是随时获取、释放的。2
3
4
未完......