标签:
外观模式核心就是为系统提供一个统一的入口,封装子系统的复杂性,便于客户端使用。
Client:客户端
Facade:外观类,提供统一的接口,根据不同的请求,调用不同的子系统处理;
Subsystem:子系统类,处理不同的子系统模块业务;
如果我们要实现一个注册公司的模块。需要和工商局+银行+质监局+税务局打交道;
但是我们可以通过代理注册公司(外观类)去帮我们处理一系列的流程:
代码实现
/** * SubSystemA 工商局 * @author yangkj*/ public class SubSystemA { public void regist(String message) { System.out.println("工商局注册:" + message); } } /** * SubSystemB 银行 * @author yangkj*/ class SubSystemB { public void regist(String message) { System.out.println("银行注册:" + message); } } /** * SubSystemC 质检局 * @author yangkj*/ class SubSystemC { public void regist(String message) { System.out.println("质检局注册:" + message); } } /** * SubSystemD 税务局 * @author yangkj*/ class SubSystemD { public void regist(String message) { System.out.println("税务局注册:" + message); } }
/** * Facade 外观类 * @author yangkj*/ public class Facade { public void regist(String message){ SubSystemA a = new SubSystemA(); a.regist(message); SubSystemB b = new SubSystemB(); b.regist(message); SubSystemC c = new SubSystemC(); c.regist(message); SubSystemD d = new SubSystemD(); d.regist(message); } }
/** * Client * @author yangkj*/ public class Client { public static void main(String[] args) { Facade facade = new Facade(); facade.regist("alibaba"); } }
标签:
原文地址:http://www.cnblogs.com/parryyang/p/5899458.html