Gof定义
为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
UML图
理解
外观设计模式又叫门面设计模式,如果你在网上看到门面设计模式,其实都是一样的。感觉外观模式很简单,好像也没什么好讲的。在《大话设计模式》里举了这么一个例子,有一个股民在买股票,面对成千上万种类型的股票不知道怎么选择好,这时如果有一个股票的经理人,他有多年丰富的经验,你把钱给他,他帮你买股票,那么事情就简单多了。这里的那个多年丰富经验的股票经理人就是Facade(门面,外观)。我们通过直接跟股票经理人打交道,而具体要做的事情由股票经理人去处理就行。
Code Example
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Facade f = new Facade(); f.MethodA(); f.MethodB(); Console.ReadLine(); } } class Facade { SystemOne one; SystemTwo tow; SystemThree three; public Facade() { one = new SystemOne(); tow = new SystemTwo(); three = new SystemThree(); } public void MethodA() { Console.WriteLine("买股票的方案一"); one.MethodOne(); three.MethodThree(); } public void MethodB() { Console.WriteLine("买股票的方案二"); tow.MethodTwo(); three.MethodThree(); } } class SystemOne { public void MethodOne() { Console.WriteLine("买1000股建设银行的"); } } class SystemTwo { public void MethodTwo() { Console.WriteLine("买2000股中国石油的"); } } class SystemThree { public void MethodThree() { Console.WriteLine("买100股腾讯的"); } } }