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

浙公网安备 33010602011771号