应用:适应对象的多维度变化
结构

代码实现

































































































































































要点:
1、本模式使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象(ThinkPad型号)和实现(工作模式)可以沿着各自的维度来变化。
2、所谓抽象和实现沿着各自的维度变化,即“子类化”它们(比如不同的ThinkPad子类,不同的工作模式子类)。得到各个子类之后,就可以任意组合ThinkPad型号和工作模式,从而得到不同型号、工作模式的ThinkPad。
3、本模式有时候类似于多集成方案,但是多继承方案往往违背类单一职责原则(即一个类只有一个变化的原因),复用性比较差。Bridge模式更好。
4、本模式一般应用于对象面临两个非常强维度的变化,有时候即使有两个变化的维度,但是某个方向的变化维度并不剧烈——两个维度的变化不会产生纵横交错的结果,并不一定要使用此模式。