现在的位置: 首页 > 综合 > 正文

设计模式学习笔记-bridge

2011年03月10日 ⁄ 综合 ⁄ 共 587字 ⁄ 字号 评论关闭
1.意图:将抽象部分与实现部分分离,使它们都可以独立的变化。
   理解为:这句话中的抽象与实现并不是指OO中的抽象类与子类实现,而是说“将一个事物中多个维度的变化分离”。
    该句中的抽象部分与实现部分分离,可以联想李建忠老师的TANK和PlatformImplementation例子。
2. 要点:
    a.组合:
        bridge使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系。使得抽象(TANK型号)和实现(不同的平台)可以沿着各自的维度来变化。
       依据:组合优于继承。
        比如,TANK抽象类中,通过构造方法来注入平台实现。
    b.子类化:
        什么叫抽象和实现沿着各自维度来变化呢?——子类化。
        所谓抽象与实现沿着各自维度来变化,即“子类化”它们。比如说不同的TANK型号和不同的平台子类。得到各个子类之后,就可以任意组合它们,从而得到不同平台上的不同型号。
    c.类似于多继承方案,但优于多继承。
    d.应在“有两个非常强的变化维度”的时候应用BRIDGE。
        有时候即使有两个变化维度,但其中一个维度的变化并不强烈时,两个变化不会导致纵横交错的结果,则不一定要用BRIDGE。
    e.BRIDGE支持N个维度的变化。
        多个维度就组合多个实现就OK了。

抱歉!评论已关闭.