Facade,為子系統中的一組接口提供一個一致的界面。
此模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
class SubSystemOne{ public void MethodOne() { 具體實現;}}class SubSystemTwo{ public void MethodTwo() { 具體實現;}}class SubSystemThree{ public void MethodThree() { 具體實現;}}class SubSystemFour{ public void MethodFour() { 具體實現;}}class Facade{ PRivate SubSystemOne one = new SubSystemOne(); private SubSystemTwo two = new SubSystemTwo(); private SubSystemThree three = new SubSystemThree(); private SubSystemFour four = new SubSystemFour(); public void MethodA() { one.MethodOne(); two.MethodTwo(); four.MethodFour(); } public void MethodB() { three.MethodThree(); one.MethodOne(); }}main(){ Facade facade = new Facade(); facade.MethodA(); facade.MethodB();}外觀模式體現了依賴倒轉原則和迪米特法則。
外觀模式的使用情況:
1、在設計初期階段,應該要有意識的將不同的兩個層分離;
2、在開發階段,子系統往往因為不斷地重構演化而變得越來越復雜,增加Facade可以提供一個簡單的接口,減少它們之間的依賴;
3、在維護一個遺留的大型系統時,可能這個系統已經非常難以維護和擴展了。當開發一個新系統需要調用這個遺留系統的功能時,可以開發一個Facade類,來為遺留代碼提供一個簡單接口,讓新系統與Facade對象交互,Facade與遺留代碼交互所有復雜的工作。
新聞熱點
疑難解答