c# 外观模式

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace Facade
 8 {
 9     public abstract class BaseSystem
10     {
11         public virtual void Init() { }
12     }
13 
14     public class System1 : BaseSystem 
15     {
16         public override void Init()
17         {
18             //base.Init();
19             Console.WriteLine("System1");
20         }
21 
22         public void Show() 
23         {
24             Console.WriteLine("显示界面");
25         }
26         public void Hide() 
27         {
28             Console.WriteLine("隐藏界面");
29         }
30     }
31 
32     public class System2 : BaseSystem
33     {
34         public override void Init()
35         {
36             //base.Init();
37             Console.WriteLine("System2");
38         }
39         public void Show()
40         {
41             Console.WriteLine("显示界面");
42         }
43         public void Hide()
44         {
45             Console.WriteLine("隐藏界面");
46         }
47     }
48 
49     public class GameSystem
50     {
51         
52         private static GameSystem m_Instance = null;
53         public static GameSystem GetInstance() 
54         {
55             //如果GameSystem继承MonoBehaviour注释下面的if
56             if (m_Instance==null)
57             {
58                 m_Instance = new GameSystem();
59             }
60             return m_Instance;
61         }
62         private List<BaseSystem> m_System = new List<BaseSystem>();
63         public void Init() 
64         {
65 
66         }
67         private System1 m_System1 = null;
68         public System1 GetSystem1() 
69         {
70             if (m_System1==null)
71             {
72                 m_System1 = new System1();
73             }
74             return m_System1;
75         }
76 
77         private System2 m_System2 = null;
78         public System2 GetSystem2()
79         {
80             if (m_System2 == null)
81             {
82                 m_System2 = new System2();
83             }
84             return m_System2;
85         }
86     }
87     class Program
88     {
89         static void Main(string[] args)
90         {
91             GameSystem.GetInstance().GetSystem1().Show();
92             Console.Read();
93         }
94     }
95 }

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层的接口,这个借口使得这子系统容易使用

应用:针对某个系统功能

 

详细出处参考:http://www.jb51.net/article/31666.htm

 

posted @ 2014-02-19 14:20  kadajEvo  阅读(113)  评论(0)    收藏  举报