外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供了一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称门面模式,它是一种对象结构型模式。
模式动机:
引入外观角色之后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦合度。
具体类图:
类图分析:将具体的类封装到一个统一的类中进行控制。
外观模式优点:
- 对客户屏蔽子系统组件,减少客户处理对象数目,并使得子系统使用起来更加容易。
- 实现了子系统与用户之间的松耦合关系
- 降低了大型软件系统中的编译依赖性。
- 只提供了一个访问子系统的统一入口,并不影响用户直接使用子系统类。
缺点:
- 不能很好的限制客户使用子系统类
- 在不引入抽象外观类的前提下,增加新的子系统可能需要修改外观类和客户端违背开闭原则