设计模式学习——Bridge(桥接)

意图:将一组实现与另一组使用它们的对象分离。

问题:一个抽象类的派生类必须使用多个实现,但不能出现类数量爆炸性增长。

解决方案:为所有实现定义一个接口,供抽象类的所有派生类使用。

参与者与协作者:Abstraction为要实现的对象定义接口,Implementor为具体的实现类定义接口。Abstraction的派生类使用Implementor的派生类,却无需知道自己具体使用哪一个ConcreteImplementor。

效果:实现与使用的对象解耦,提供了可扩展性,客户对象无需操心实现问题。

实现:
1. 将实现封装在一个抽象类中。
2. 在要实现的抽象的基类中包含一个实现的句柄。

结构图:

> 遵循“一条规则,实现一次”策略有助于重构。
> 找到变化关封装之。
> 优先使用对象聚集而不是类继承。

摘自《设计模式解析》(第2版)第10章

Tags:

Leave a Reply


提醒: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。