设计模式3-外观模式

 1 namespace DesignModel.外观模式
 2 {
 3     class OldSystemBLL
 4     {
 5         public IList<object> SortData(IList<Object> data)
 6         {
 7             return data;
 8         }
 9     }
10     class OldSystemDAL
11     {
12         public IList<Object> GetProductData()
13         {
14             return new List<object>();
15         }
16        
17     }
18 
19     /// <summary>
20     /// 外观类:将子系统的功能集成在这里,对外统一使用。
21     /// 迪米特法则(最少知道原则)
22     /// </summary>
23     class Facade {
24 
25         OldSystemBLL osll;
26         OldSystemDAL osdal;
27         public Facade()
28         {
29             osll = new OldSystemBLL();
30             osdal = new OldSystemDAL();
31         }
32 
33         public IList<object> GetSortedProductData()
34         {
35             return osll.SortData(osdal.GetProductData());
36         }
37     }
38 }
39 
40 static void 外观模式()
41 {
42        var f = new Facade();
43        var list = f.GetSortedProductData();
44 }
View Code

外观模式:为子系统(子业务)定义一个高层类,客户端只需要与这个统一的外观类接口打交道。

比如三层中在DAL和BLL之上建立统一的接口供其它地方使用。复杂的老系统扩展或者修改情况,新增加外观(处理与具体的交互)与开发新功能,便不会影响到其它系统功能。

挺简单的一个设计,相信平常就算不知道这个模式也有用到,关键是要有这种思想,而不是死记。

原文地址:https://www.cnblogs.com/liurui/p/5505952.html