设计模式 桥接模式
本文将介绍设计模式中的桥接模式。
一、什么是桥接模式?
桥接模式适用于一个类具有两个独立变化的维度时,它将两个维度均设计为独立的继承等级结构,用关联关系实现两个维度的组合,而不是让两个维度耦合在一起。
二、实现
1. 结构
2. 角色
Abstraction 抽象类:
- 通常是抽象类
- 包含若干具体业务方法,定义若干抽象业务方法
- 与 Implementor 实现类接口具有关联关系,其中包含了一个类型为它的成员变量
RefinedAbstraction 扩充抽象类:
- Abstraction 抽象类的具体实现,实现了在 Abstraction 抽象类中定义的若干抽象业务方法
Implementor 实现类接口:
- 声明一些基本操作
ConcreteImplementor 具体实现类:
- 实现 Implementor 实现类接口中定义的基本操作
3. 简单示例
Abstraction:
1 |
|
RefinedAbstraction:
1 |
|
Implementor:
1 |
|
ConcreteImplementor:
1 |
|
三、优缺点
1. 优点
- 提升系统的可扩展性,在不修改原有代码的情况下,同一个类的两个维度都可以任意扩展
2. 缺点
- 增加系统的理解成本和设计难度
- 要求有两个独立变化的维度,其使用范围存在一定局限性
参考
- 《Java 设计模式》