外观模式

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace DesignPattern.StructuralPattern
 8 {
 9     #region 外观模式要点
10     //定义:提供统一的接口,用来访问一系列子系统。
11     //接口保存客户端所需访问的子系统的引用,将客户端的请求重定向到目标子系统
12     //主要是为了客户端与多个子系统的解耦,依赖的对象越多客户端就越不稳定
13     //通过只与外观类交互,会大大减少客户端改变的原因,子系统的扩展或改变不会影响到客户端。
14     //应用:分层结构中,可以作为不同层子系统的入口
15     #endregion
16     public class FacadePattern
17     {
18         SubsystemOne _subsystemOne = null;
19         SubsystemTwo _subsystemTwo = null;
20         //自己创建子系统,也可以由外部作为构造函数参数传入
21         public FacadePattern()
22         {
23             _subsystemOne = new SubsystemOne();
24             _subsystemTwo = new SubsystemTwo();
25         }
26 
27         public void Operation()
28         {
29             if (_subsystemOne != null && _subsystemTwo != null)
30             {
31                 _subsystemOne.OperationOne();
32                 _subsystemTwo.OperationTwo();
33             }
34         }
35     }
36 
37     public class SubsystemOne
38     {
39         public void OperationOne()
40         {
41 
42             Console.WriteLine("OperationOne start");
43         }
44 
45     }
46     public class SubsystemTwo
47     {
48         public void OperationTwo()
49         {
50 
51             Console.WriteLine("OperationTwo start");
52         }
53     }
54 
55 
56     public class Client
57     {
58         public void Operation(FacadePattern facadePattern)
59         {
60             facadePattern.Operation();
61         }
62     }
63 }

 

posted on 2021-06-25 17:24  HowieGo  阅读(33)  评论(0)    收藏  举报

导航