[ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 05 表现层
注:本例来自图书Professional ASP.NET Design Pattern,该书的亚马逊链接为:http://www.amazon.com/Professional-ASP-NET-Design-Patterns-Millett/dp/0470292784/ref=sr_1_1?ie=UTF8&qid=1296479229&sr=8-1
转载请注明本文来自博客园 http://www.cnblogs.com/charrli
对于这个基于MVP的分层结构,我们已经完成了业务逻辑层(Model),服务层(View),现在开始了表现层(Presenter)。
表现层的作用就是操纵服务层提供的服务ProductService,传入ProductListRequest,得到ProductListResponse,然后执行Display方法显示结果。
1. IProductListview
public interface IProductListView
{
void Display(IList<ProductViewModel> Products);
Model.CustomerType CustomerType { get; }
string ErrorMessage { set; }
}其作用是将表现层进行隔离,这样ProductListPresenter的Display方法只需要针对这个IProductListView接口进行编程就可以了,而不需要知道具体表现层是怎么样的。
可见MVP中,M层里有IDepository接口将具体底层数据的具体存放进行了隔离;而相应的,在表现层有IProductListView将具体数据的显示方式进行了隔离。
2. IProductListView
public class ProductListPresenter
{
private IProductListView _productListView;
private Service.ProductService _productService;
public ProductListPresenter(IProductListView ProductListView, Service.ProductService ProductService)
{
_productService = ProductService;
_productListView = ProductListView;
}public void Display()
{
ProductListRequest productListRequest = new ProductListRequest();
productListRequest.CustomerType = _productListView.CustomerType;ProductListResponse productResponse = _productService.GetAllProductsFor(productListRequest);
if (productResponse.Success)
{
_productListView.Display(productResponse.Products);
}
else
{
_productListView.ErrorMessage = productResponse.Message;
}
}
}这里ProductListPresenter的构造函数传入了两个的参数,一个是对应WebUI的接口,一个是传入Service Layer提供的ProductService类对象。具体显示过程,是调用接口的方法来完成的。
这样Presentation层也完成了。
[ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 01 准备工作
http://www.cnblogs.com/charrli/archive/2011/01/31/1948483.html
[ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 02 业务逻辑层
http://www.cnblogs.com/charrli/archive/2011/01/31/1948504.html
[ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 03 服务层
http://www.cnblogs.com/charrli/archive/2011/02/01/1948521.html
[ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 04 数据访问层
http://www.cnblogs.com/charrli/archive/2011/02/01/1948523.html
[ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 05 表现层
http://www.cnblogs.com/charrli/archive/2011/02/01/1948554.html
[ASP.NET 设计模式] 用Visual Studio2010搭建一个简单的分层结构示例Step by Step —— 06 用户界面层
http://www.cnblogs.com/charrli/archive/2011/02/01/1948563.html