设计模式学习笔记——外观模式(Facade)
1.特点:子系统的高层接口,避免两个类直接关系的第三者。
2.概念:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
3.类图:
4.程序实现:
/// <summary> /// 子系统中的一个类 /// </summary> public class SubSystemOne { public void MethodeOne() { Console.WriteLine("Sub System first method."); } } /// <summary> /// 子系统中一个类 /// </summary> public class SubSystemTwo { public void MethodTwo() { Console.WriteLine("Sub System second method."); } } /// <summary> /// 子系统中一个类 /// </summary> public class SubSystemThree { public void MethodThree() { Console.WriteLine("Sub System third method."); } } /// <summary> /// 子系统中一个类 /// </summary> public class SubSystemFour { public void MethodFour() { Console.WriteLine("Sub System fourth method."); } } /// <summary> /// 外观类 /// </summary> public class Facade { private SubSystemOne one; private SubSystemTwo two; private SubSystemThree three; private SubSystemFour four; public Facade() { one = new SubSystemOne(); two = new SubSystemTwo(); three = new SubSystemThree(); four = new SubSystemFour(); } public void MethodA() { Console.WriteLine("\nMethod group A----"); one.MethodeOne(); two.MethodTwo(); four.MethodFour(); } public void MethodB() { Console.WriteLine("\nMethod group B----"); two.MethodTwo(); three.MethodThree(); } } class Program { static void Main(string[] args) { // 由于Facade的作用,客户端可以根本不知道子系统类的存在 Facade facade = new Facade(); facade.MethodA(); facade.MethodB(); Console.Read(); } }