设计模式之十(外观模式)
前言
外觀模式:為子系統(tǒng)中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一系統(tǒng)更加容易使用.
結(jié)構(gòu)圖
SubSystem? Class 子系統(tǒng)類集合 實現(xiàn)子系統(tǒng)的功能,處理Facade對象指派的任務(wù),注意子類中沒有Facade的任何信息,即沒有對Facade對象的引用
代碼實現(xiàn)
?首先是四個子系統(tǒng)的類
public class SubSystemOne{public void MethodOne(){Console.WriteLine("子系統(tǒng)方法一");}}public class SubSystemTwo{public void MethodTwo(){Console.WriteLine("子系統(tǒng)方法二");}}public class SubSystemThree{public void MethodThree(){Console.WriteLine("子系統(tǒng)方法三");}}public class SubSystemFour{public void MethodFour(){Console.WriteLine("子系統(tǒng)方法四");}}?外觀類
public class Facade{SubSystemOne one;SubSystemTwo two;SubSystemThree three;SubSystemFour four;public Facade(){one = new SubSystemOne();two = new SubSystemTwo();three = new SubSystemThree();four = new SubSystemFour();}public void MethodA(){Console.WriteLine("\n方法組A()----");one.MethodOne();two.MethodTwo();four.MethodFour();}public void MethodB(){Console.WriteLine("\n方法組B()----");two.MethodTwo();three.MethodThree();}}?客戶端調(diào)用
class Program{static void Main(string[] args){Facade facade = new Facade();facade.MethodA();facade.MethodB();Console.ReadLine();}}?運行結(jié)果如下
總結(jié)
首先,在設(shè)計初期階段,應(yīng)該要有意識的將不同的兩個層分離。
其次,在開發(fā)階段,子系統(tǒng)往往因為不斷的重構(gòu)演化而變得越來越復(fù)雜。增加外觀Facade可以提供一個簡單的接口,減少它們之間的依賴。
第三,在維護一個遺留的大型系統(tǒng)時,可能這個系統(tǒng)已經(jīng)非常難以維護和擴展了。可以為新系統(tǒng)開發(fā)一個外觀Facade類,來提供設(shè)計粗糙或高度復(fù)雜的遺留代碼的比較清晰簡單的接口,讓新系統(tǒng)與Facade對象交互,Facade與遺留代碼交互所有復(fù)雜的工作。
轉(zhuǎn)載于:https://www.cnblogs.com/aehyok/p/3315983.html
總結(jié)
以上是生活随笔為你收集整理的设计模式之十(外观模式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡逾期多久催收?信用卡逾期的危害
- 下一篇: XML DOM 节点