外觀模式(Facade),凡事不用親力親爲,把事情交給擅長的人去辦就OK了java
package com.fumeck.design.facade; /** * 外觀類 */ public class Facade { private SubSystemA subSystemA; private SubSystemB subSystemB; private SubSystemC subSystemC; public Facade() { subSystemA = new SubSystemA(); subSystemB = new SubSystemB(); subSystemC = new SubSystemC(); } public void methodA(){ subSystemA.methodOne(); subSystemB.methodTwo(); } public void methodB(){ subSystemB.methodTwo(); subSystemC.methodThree(); } }
public class SubSystemA { public void methodOne(){ System.out.println("我是a"); } } public class SubSystemB { public void methodTwo(){ System.out.println("我是b"); } } public class SubSystemC { public void methodThree(){ System.out.println("我是c"); } }
package com.fumeck.design.facade; public class Client { public static void main(String[] args) { Facade facade = new Facade(); //只需調用外觀方法A,具體的內部細節我無論 facade.methodA(); } }
控制檯console:code
我是a
我是b開發
總結:子類的子集統一由外觀類Facade進行管理,並組合成各類不一樣的方式咱們只需調用便可console
在開發中常常遇到的問題就是在原有的業務上增值其餘項,這時能夠使用外觀模式就原有的業務和增值項封裝到外觀類的方法內便可class