`

桥接模式理解

 
阅读更多

 

                   最近上班轻松,看看设计模式啥的,看到桥接模式,有些心得,写下来以便以后回忆回忆。

 

  桥接模式的好处就不多说了,无非就是实现和抽象分离,各自变化等。

 

进入主题吧:

个人理解桥接模式:

比如蜡笔,和毛笔这两个东西,如果用蜡笔画画,我们知道蜡笔的颜色和蜡笔本身是偶会在一起的,不像毛笔,毛笔本身是没有颜色的,如果我要画画,需要12种颜色,型号有大中小,那么就需要36支蜡笔,而反观毛笔,我只需要12种颜料,然后大中小三种毛笔类型,如果我们用面向对象思想来设计,那么蜡笔需要36个类,而毛笔只需要15个类。为什么会出现这种情况呢?

 

 

其实这个道理很简单,就是毛笔它的颜色没有和它本身绑定在一起,也就是说它们解耦了。

 

如果毛笔和颜色绑定了那么就如图所示:



 

从这里看,我们看到有36个类,如果用桥接模式就变成如下图了:



 

 

可以明显看到类减少了。

 

体会:其实说白了,就是将类的功能职责最小话,即单一职责。我们这里就是抽取了笔中,颜

 

色这个维度进行抽象.然后利用组合,也符合了面向对象设计思想的优先使用组合而非继承这个

 

 

思想。当一个类的子类需要扩展时,如果要在两个维度进行扩展,那么就可以使用Bridge模式。

 

   

  • 大小: 32.8 KB
  • 大小: 19.4 KB
分享到:
评论

相关推荐

    设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式

    创建型模式 (100%) 设计模式面面观(8):创建型模式总结 (100%) 设计模式面面观(9):适配器模式(Adapter Pattern)-结构型模式 (100%) 设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式 ...

    设计模式 - 桥接模式(C++实例)

    初学桥接模式时的具体实现。若理解有误,还请各位大S纠正。

    Java设计模式之桥接模式

    更容易理解的表述是:实现系统可从多种维度分类,桥接模式将各维度抽象出来,各维度独立变化,之后可通过聚合,将各维度组合起来,减少了各维度间的耦合。  一、例讲桥接模式  不必要的继承导致类爆炸  汽车可...

    python 桥接模式(示例)

    桥接模式 Bridge:将抽象部分与他的实现部分分离,使他们都可以独立的变化合成/聚合复用原则: 尽量使用合成/聚合,尽量不要使用继承解释:什么叫抽象与他的实现分离,并不是说,让抽象类与其派生类分离,因为这就没有任何...

    java 桥接模式

    java 设计模式 桥接模式,希望对大家理解设计模式有帮助

    [结构型模式] 桥接模式的理解

    NULL 博文链接:https://jacky-dai.iteye.com/blog/2297785

    C++设计模式编程中使用Bridge桥接模式的完全攻略

    桥接模式将抽象(Abstraction)与实现(Implementation)分离,使得二者可以独立地变化。 桥接模式典型的结构图为: 在桥接模式的结构图中可以看到,系统被分为两个相对独立的部分,...桥接模式号称设计模式中最难理解

    深入理解JavaScript系列(44):设计模式之桥接模式详解

    桥接模式(Bridge)将抽象部分与它的实现部分分离,使它们都可以独立地变化。 正文 桥接模式最常用在事件监控上,先看一段代码: 代码如下: addEvent(element, ‘click’, getBeerById); function getBeerById(e) {...

    python学习小技巧:举例讲解Python中的Null模式与桥接模式编程

    这篇文章主要介绍了Python中的Null模式与桥接模式编程,Null模式与桥接模式都属于Python的设计模式编程,需要的朋友可以参考下 Null模式 我想每个人都有一种经历,为了获取某属性,但是有时候属性是None,那么需要你做...

    简单了解C#设计模式编程中的桥接模式

    桥接模式的概念 定义:将抽象部分与实现部分分离,使它们都可以独立的变化。 理解:为啦解决一个对象变化而影响多个对象跟着变化,需要把具体实现对象抽象化,使降低对象和变化因素的耦合度,提高系统的可维护性和...

    project3_java_软件体系结构与设计模式_加密算法_

    三种加密算法和其解密算法的Java实现(篇幅限制,无法具体解释三种加密算法,可能会对理解造成一定的困难)加密算法1(折叠算法)。前提条件:要加密的文本文件仅包含英文字符和数字。加密算法2(分组互换算法)。...

    java中的设计模式,主要的设计模式

    适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式观察者模式、策略模式、模板模式、责任链模式、解析器模式、迭代子模式 命令模式、状态模式、备忘录模式、访问者模式、中介者模式

    深入理解JavaScript系列

    深入理解JavaScript系列(44):设计模式之桥接模式 深入理解JavaScript系列(45):代码复用模式(避免篇) 深入理解JavaScript系列(46):代码复用模式(推荐篇) 深入理解JavaScript系列(47):对象创建模式...

    Java设计模式,并加上个人理解

    1. 设计模式 1.1 含义 1.2 作用 1.3 设计原则 1.4 分类 2. 简单工厂模式 (SimpleFactoryPattern) 3. 工厂方法模式 (Factory Method) ...16. 桥接模式 (Bridge Pattern) 17. 观察者模式 (Observer Pattern)

    设计模式课件大全

    设计模式06-适配器、桥接、组合模式 设计模式07-组合模式、装饰模式 设计模式09-外观模式、享元模式 设计模式10-代理模式、结构型模式大复习 设计模式11-行为模式-责任链、命令模式 设计模式12-解释器模式 设计模式...

    举例讲解Python中的Null模式与桥接模式编程

    我举个不是很通用的例子,只是为了让大家理解这个模式:我有很多类, 但是不是每个类都有类方法test,所以我调用类方法就要做个异常处理,类似这样 class A(object): pass class B(object): b = 1 @classmethod ...

    深入理解JavaScript系列(.chm)

    深入理解JavaScript系列(44):设计模式之桥接模式 深入理解JavaScript系列(45):代码复用模式(避免篇) 深入理解JavaScript系列(46):代码复用模式(推荐篇) 深入理解JavaScript系列(47):对象创建模式...

Global site tag (gtag.js) - Google Analytics