用于将对复杂某系统的访问统一化, 避免客户端过多的干涉某系统及其子系统。
package designpattern.structure.facade; public class Facade { Subsystemclass1 s1 = new Subsystemclass1(); Subsystemclass2 s2 = new Subsystemclass2(); Subsystemclass3 s3 = new Subsystemclass3(); public void method1() { s1.methodx(); s2.methody(); } public void method2() { s1.methodx(); s3.methodz(); } public void method3() { s2.methody(); s3.methodz(); } } package designpattern.structure.facade; public class Subsystemclass1 { public void methodx() { System.out.println("Subsystemclass1.methodx()"); } } package designpattern.structure.facade; public class Subsystemclass2 { public void methody() { System.out.println("Subsystemclass1.methody()"); } } package designpattern.structure.facade; public class Subsystemclass3 { public void methodz() { System.out.println("Subsystemclass2.methodz()"); } } package designpattern.structure.facade; /** * * 客户端只需要一个facade类的引用即可,将子系统的工作交给facade处理 * , 从而不用直接和子系统的各种类打交道。 * * 避免了客户端的复杂性 * */ public class Client { /** * @param args */ public static void main(String[] args) { Facade f = new Facade(); f.method1(); f.method2(); f.method3(); } }
其实是一个很常见的模式
原文:http://www.cnblogs.com/FlyAway2013/p/3917181.html