初学者硕枫设计模式系列之11 外观模式
菜鸟硕枫设计模式系列之11 外观模式
外观模式,一种封装底层实现的模式。使得调用者不用关心谁去具体的完成功能操作,解耦了请求者与操作者,封装了细节。外观模式也是一种结构型设计模式。
外观模式类图:

具体demo:
Facade接口:
具体实现:
A接口:
A实现:
B接口:
B实现:
测试类:
说明 :说到解耦,在我的理解上,外观模式是封装作用最明显的一个设计模式,使得调用者完全不用关心底层实现由谁去完成。
外观模式,一种封装底层实现的模式。使得调用者不用关心谁去具体的完成功能操作,解耦了请求者与操作者,封装了细节。外观模式也是一种结构型设计模式。
外观模式类图:
具体demo:
Facade接口:
package facadePattern; public interface Facade { void doA(); void doB(); }
具体实现:
package facadePattern; public class FacadeImpl implements Facade{ private A a; private B b; public void setA(A a) { this.a = a; } public void setB(B b) { this.b = b; } @Override public void doA() { a.doA(); } @Override public void doB() { b.doB(); } }
A接口:
package facadePattern; public interface A { void doA(); }
A实现:
package facadePattern; public class AImpl implements A{ @Override public void doA() { System.out.println("hello from taobao"); } }
B接口:
package facadePattern; public interface B { void doB(); }
B实现:
package facadePattern; public class BImpl implements B{ @Override public void doB() { System.out.println("doB,hello from taobao"); } }
测试类:
package facadePattern; public class FacadeTest { public static void main(String[]args){ A a = new AImpl(); B b = new BImpl(); FacadeImpl facade = new FacadeImpl(); facade.setA(a); facade.setB(b); facade.doA(); facade.doB(); } }
说明 :说到解耦,在我的理解上,外观模式是封装作用最明显的一个设计模式,使得调用者完全不用关心底层实现由谁去完成。