[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

posted on 2011-02-01 10:05  李志鹏  阅读(375)  评论(0)    收藏  举报

导航