单一职责:桥模式。
模式类型
单一职责
桥模式
由于某些类型的固有实现逻辑,使他具有多个维度的变化。
将抽象部分(业务功能)与实现部分(平台实现)分离,使他们都可以独立地变化。
使用场景
与装饰模式类似,不过接口进行了拆分,将业务功能和平台实现进行了接口的拆分。
桥模式中的桥可以看作是 Messager
基类中的那个指向 MessagerImp
的指针,将二者组合起来,而不是继承。
以下例子为一个具有一个维度的变化。如果具有多个维度的变化,则需要多个指向基类的指针来充当“桥”组合各个基类。
与装饰模式作为对比,桥模式是主要区别是进行了接口的拆分。
举例
不使用桥模式
1 | class Messager |
使用桥模式
1 | // 对原本的 Messager 接口隔离 |