在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采样添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。
典型模式有:Fascade、Proxy、Adapter、Mediator
一、Fascade
动机
上述A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。
如何演化外部客户程序和系统间的交互接口?如何将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦?
模式定义
为子系统中的一组接口提供一个一致(稳定)的界面,Fascade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)
——《设计模式》GoF