“接口隔离模式”之外观模式(门面模式)
1 模式动机
外观模式属于“接口隔离模式”的一种。
下图中,A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。
如何简化外部客户程序和系统间的交互接口?如何将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦?
使用B方案的好处:无论系统内部如何变化,对外的接口(Facade)是没有变化的。
2 模式定义
外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。
3 模式结构
外观模式包含如下角色:
- Facade: 外观角色
- SubSystem:子系统角色
4 总结
Facade设计模式更注重从架构的层次去看整个系统,而不是单个类的层次。Facade很多时候更是一种架构设计模式。
Facade模式是一种思想,因此这里就不贴出具体示例的代码了。