设计模式学习笔记-bridge
2008-05-03 22:17
579 查看
1.意图:将抽象部分与实现部分分离,使它们都可以独立的变化。
理解为:这句话中的抽象与实现并不是指OO中的抽象类与子类实现,而是说“将一个事物中多个维度的变化分离”。
该句中的抽象部分与实现部分分离,可以联想李建忠老师的TANK和PlatformImplementation例子。
2. 要点:
a.组合:
bridge使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系。使得抽象(TANK型号)和实现(不同的平台)可以沿着各自的维度来变化。
依据:组合优于继承。
比如,TANK抽象类中,通过构造方法来注入平台实现。
b.子类化:
什么叫抽象和实现沿着各自维度来变化呢?——子类化。
所谓抽象与实现沿着各自维度来变化,即“子类化”它们。比如说不同的TANK型号和不同的平台子类。得到各个子类之后,就可以任意组合它们,从而得到不同平台上的不同型号。
c.类似于多继承方案,但优于多继承。
d.应在“有两个非常强的变化维度”的时候应用BRIDGE。
有时候即使有两个变化维度,但其中一个维度的变化并不强烈时,两个变化不会导致纵横交错的结果,则不一定要用BRIDGE。
e.BRIDGE支持N个维度的变化。
多个维度就组合多个实现就OK了。
理解为:这句话中的抽象与实现并不是指OO中的抽象类与子类实现,而是说“将一个事物中多个维度的变化分离”。
该句中的抽象部分与实现部分分离,可以联想李建忠老师的TANK和PlatformImplementation例子。
2. 要点:
a.组合:
bridge使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系。使得抽象(TANK型号)和实现(不同的平台)可以沿着各自的维度来变化。
依据:组合优于继承。
比如,TANK抽象类中,通过构造方法来注入平台实现。
b.子类化:
什么叫抽象和实现沿着各自维度来变化呢?——子类化。
所谓抽象与实现沿着各自维度来变化,即“子类化”它们。比如说不同的TANK型号和不同的平台子类。得到各个子类之后,就可以任意组合它们,从而得到不同平台上的不同型号。
c.类似于多继承方案,但优于多继承。
d.应在“有两个非常强的变化维度”的时候应用BRIDGE。
有时候即使有两个变化维度,但其中一个维度的变化并不强烈时,两个变化不会导致纵横交错的结果,则不一定要用BRIDGE。
e.BRIDGE支持N个维度的变化。
多个维度就组合多个实现就OK了。
相关文章推荐
- java 设计模式学习笔记十 bridge桥模式
- C#面向对象设计模式学习笔记(7) - Bridge 桥接模式(结构型模式)
- 设计模式学习笔记(八)——Bridge桥接模式
- 设计模式学习笔记---桥接模式bridge(Java版)
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 【设计模式学习笔记八】【结构型模式】【桥接模式(Bridge)】
- 阿Sam的设计模式学习笔记---- Bridge模式
- 设计模式学习笔记十二:桥接模式(Bridge Pattern)
- HeadFirst 设计模式学习笔记20--桥接(Bridge)模式拾零
- 设计模式学习笔记——桥接(Bridge)模式
- 步步为营 .NET 设计模式学习笔记 十三、Bridge (桥接模式)
- 设计模式学习笔记(八)——Bridge桥接模式
- 设计模式C++学习笔记之二(Bridge桥梁模式)
- 设计模式学习笔记--桥梁(Bridge)模式
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- [学习笔记]设计模式之Bridge
- 【HeadFirst 设计模式学习笔记】19 桥接(Bridge)模式拾零
- 步步为营 .NET 设计模式学习笔记 十三、Bridge (桥接模式)
- 设计模式学习笔记:看着挺像的Adpater Bridge
- 设计模式C++学习笔记之十一(Bridge桥梁模式)