1. 模式结构
2. 角色
(1) Façade(外观角色)
外观角色知道相关的子系统的功能和责任
(2) SubSystem(子系统角色)
子系统不知道外观的存在,对于子系统而言,外观仅仅是另一个客户端而已
3. 扩展
一般将外观类设计为单例类
引入抽象外观类,使得再不修改原有具体外观类的情况下增加新的具体外观类实现新业务
不要通过继承一个外观类在子系统中加入新行为,新的行为的增加应该通过修改原有子系统或增加新的子系统类来实现
4. 特点
对象结构型模式
为子系统们提供一个统一的入口,客户端只需要与外观对象打交道,而不需要与子系统内部的很多对象打交道
外观模式是实现代码重构以便达到“迪米特法则”(只与你的直接朋友通信)的一个强有力武器
5. 应用
外观类简化JDBC操作
SessionBean