外观模式(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