• Bridge模式——对象结构型模式


        今天看了Bridge模式,对其进行简单的总结,并给出几篇通俗易懂的文章链接。

    (一)意图——将抽象部分和它的实现部分分离,使它们都可以独立地变化。

    适用于从多维度描述的类型,拆解开来,使其能沿着各维度独立变化。脱耦。

    (二)动机——解决继承机制带来的不足。

    1)扩展抽象不方便。扩展时要重新定义一个新的类。

    2)继承机制使得客户代码需要重新编译。

    为解决以上两个问题,使用桥接的方式使得抽象类和它的实现分离,使得它们可以按照自己的方式独立变化。

    (三)结构——抽象和实现分离。

    以下是桥接模式的示意图:

    (四)优点

    1)分离接口及其实现部分。将Abstraction和Implementor分离有助于降低对实现部分编译时刻的依赖性,当改变一个实现类时,并不需要重新编译Abstraction 和它的客户程序,保证了一个类库的不同版本之间的二进制兼容性;接口和实现分离有助于分层,产生更好的结构化系统——抽象化层和实现层,系统的高层只要知道Abstraction 和Implementor 即可。

    2)提高可扩充性。可以独立对Implementor 和Abstraction 进行扩充。

    3)实现细节对客户透明。可以对客户隐藏实现细节,例如共享Implementor 对象以及相应的引用技术机制。

    (五)补充。

    1)有一个以上构件时使用桥梁模式比较好。

    2)创建正确的实现对象。缺省实现对象;代理实现对象。

    (六)参考。

    http://www.cnblogs.com/houleixx/archive/2008/02/23/1078877.html

    http://blog.csdn.net/hguisu/article/details/7529194

    http://blog.csdn.net/yhmhappy2006/article/details/7227017

    《程序员面试宝典》P246 ——设计模式的思想描述蜡笔和毛笔的不同。

  • 相关阅读:
    【链表】Remove Duplicates from Sorted List II(三指针)
    【链表】Reorder List
    【链表】 Reverse Linked List II
    【链表】Rotate List(三个指针)
    【链表】Sort List(归并排序)
    【链表】Swap Nodes in Pairs(三指针)
    数组中常用算法(方法)总结
    使用 gitee 托管你的 go 模块
    git库移植
    git 访问方式浅谈
  • 原文地址:https://www.cnblogs.com/eva_sj/p/6172261.html
Copyright © 2020-2023  润新知