外观模式(Facade)定义:是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。
外观模式的优点有:
1、降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。
2、对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易。
3、降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植过程,因为编译一个子系统不会影响其他的子系统,也不会影响外观对象。
外观类与内部类:
1 public class Facade { 2 private SubSystemA subSystemA = new SubSystemA(); 3 private SubSystemB subSystemB = new SubSystemB(); 4 private SubSystemC subSystemC = new SubSystemC(); 5 6 public void method() { 7 subSystemA.method1(); 8 subSystemB.method2(); 9 subSystemC.method3(); 10 } 11 } 12 13 public class SubSystemA { 14 public void method1() { 15 System.out.println("方法A调用"); 16 } 17 } 18 19 public class SubSystemB { 20 public void method2() { 21 System.out.println("方法B调用"); 22 } 23 } 24 25 public class SubSystemC { 26 public void method3() { 27 System.out.println("方法C调用"); 28 } 29 }
调用方式:
1 public class Client { 2 //Servelet 就是外观模式的使用 3 public static void main(String[] args) { 4 Facade facade = new Facade(); 5 facade.method(); 6 } 7 }
执行结果: