`
阅读更多

    思考了好一阵,总是没有一个合适的答案,感觉没有办法继续往下写了....

    先展示一下Bridge设计模式的目的就是:将抽象与其实现解耦,使它们可以独立的适应变化,这是在Gof中的描述(很是通用,但是没有感觉....)

     老实说,教材中的例子比较抽象啊,不是很容易理解,但是讲解还算可以,毕竟是外文啊,参考了一些博客内容,感觉这个讲解比较集中,好理解。

     桥梁模式的用意是将问题的抽象和实现分离开来实现,通过用聚合代替继承来解决子类爆炸性增长的问题。
比如我们有一个画图程序 有2个图形(Circle Rectangle )和2种画图方法(Drawing1 Drawing2)
图形可能会使用Drawing1来画图 也可能使用Drawing2来画图
在这个画图程序中有两个可变因素 一个是图形的种类 有可能会增加新的图形 另一个是画图方法 可能会有Drawing3出现
当系统有两个可变因素时 我就应该考虑到桥梁模式,至少它应该在你的脑子里闪过

在面向对象设计中有两条重要原则
1.找出变化并封装之
2.优先使用聚合而不是继承


这两条将在桥梁模式中得到完美体现


具体的例子看上面这个链接、教材、和这个链接 就够了!实际的应用中用到了,再做补充!仔细想来,这个算作connecting different types 的模式是很准确的,它就像是两个Strategy模式拼凑而成,从一端变化转化为两端都在变化,相同点是遵循了面向接口编程+接口的开闭原则!


分享到:
评论

相关推荐

    Blue-Bridge-Cup-单片机

    2.g-10 to g-14 此为蓝桥杯单片机国赛真题实现 3.s-10 to s-14-1 此为蓝桥杯单片机省赛真题实现 4.zero-超级缝合怪 此为所有模块核心代码文件,用于背诵 5.考试用 此为考试模板,由真题写法提取出! 注意: ...

    hypixel-discord-chat-bridge:Hypixel公会聊天和Discord之间的双向聊天桥梁

    表中的内容使用NodeJS安装 先决条件吉特NodeJS> = 14 纱线> = 1.2 我的世界帐户 设定指南首先,使用以下命令克隆存储库: git clone https://github.com/Senither/hypixel-discord-chat-bridge.git 接下来进入...

    i2s-test-bridge:桌面系统的I2S测试桥

    适用于台式机系统的I2S测试桥 蓝牙控制器历来通过PCM / I2S采访提供SCO数据。... 14 D11 橘子 I2S配置: 奴隶 飞利浦I2S 8赫兹 16位 UART配置: 230400波特(足以用于1通道,8 kHz,16位= 128

    Wireless Communications - Andrea Goldsmith

    Wireless Communications - Andrea Goldsmith

    spring4.3.0lib

    4\spring-bridge-2.3.0-b10.jar 5\spring-context-4.3.0.RELEASE.jar 6\spring-context-support-4.3.0.RELEASE.jar 7\spring-core-4.3.0.RELEASE.jar 8\spring-expression-4.3.0.RELEASE.jar 9\spring-integration-...

    C#设计模式-吕震宇

    设计模式(16)-Bridge Pattern 设计模式(15)-Facade Pattern 设计模式(14)-Flyweight Pattern C#设计模式(13)-Proxy Pattern C#设计模式(12)-Decorator Pattern C#设计模式(11)-Composite Pattern ...

    VC++ v14 Desktop Framework Package

    用于Desktop Bridge的C ++运行时框架包, 依赖于C ++运行时库的Windows桌面应用程序必须在创建应用程序包的过程中为Desktop Bridge指定相应版本的C ++运行时框架包。 必须做到这一点,而不仅仅是重新分发Visual ...

    常见设计模式解析和实现 (内含工程和资料文档C++)

    07-Bridge模式 08-Composite模式 09-Decorator模式 10-Proxy模式 11-TemplateMethod模式 12-ChainOfResponsibility模式 13-FlyWeight模式 14-Command模式 15-Observer模式 16-Strategy模式 17-State模式 18-Iterator...

    slf4j-jdk14-1.3.0.jar

    SLF4J JDK14绑定 org.slf4j/slf4j-jdk14/1.3.0/slf4j-jdk14-1.3.0.jar

    slf4j-jdk14-1.0.jar

    SLF4J JDK14绑定 org.slf4j/slf4j-jdk14/1.0/slf4j-jdk14-1.0.jar

    slf4j-jdk14-1.1.0.jar

    SLF4J JDK14绑定 org.slf4j/slf4j-jdk14/1.1.0/slf4j-jdk14-1.1.0.jar

    常用晶振三极管按键按钮保险电池座电感AD封装库ALTIUM库106个合集(3D视图封装库).PcbLib

    BRIDGE-P4/D10 BRIDGE-P4/DIP BRIDGE-P4/X2.1 BUTTON-BIG-DIP BUTTON-DIP BUZZER CAN-3/D5.6 CAN-3/D5.9 CAN-3/Y1.4 CAN-3/Y1.5 CAN-8/D9.4 D2-PAK-3PIN D2-PAK-5PIN DIODE SMC DIODE-0.3 DIODE-0.4 DIODE-0.7 DIP-...

    Spring主流jar包大全

    batik-bridge-1.7.jar batik-codec-1.7.jar batik-css-1.7.jar batik-dom-1.7.jar batik-ext-1.7.jar batik-gvt-1.7.jar batik-js-1.7.jar batik-parser-1.7.jar batik-script-1.7.jar batik-svg-dom-1.7.jar batik-...

    50W AC-DC电源适配器电路ALTIUM设计硬件原理图+PCB源文件.zip

    3KBP08M-E4/45 Diode, Switching-Bridge, 800V, 3A, TH B57236S0100M000 Thermistor NTC, 10 ohm, 20%, Disc_11.5mmx6mm BSS126 H6906 MOSFET, N-CH, 600V, 0.021A, SOT-23 BZX84C15LT1G Diode, Zener, 15V, 225mW, ...

    Altium designer封装库&集成库大全

    bridge3 BRQ CB1 CB2 CD4 CD5 CD6 CD7 CD9 CD10 CD12 CD15 con5d CON7D CON16 DAN.1/.2 DB9 DB25 DG128F-5.0 DG1282 DG1282-5.0 DG1282-7.5 DG1282A DG1283 dg1283-5.0 DG1283-7.5 DG1284 DG1286 DG1286-5.0 DG1288 ...

    DRV8432原理图

    The DRV8432 is a dual full-bridge PWM motor driver. It has a maximum recommended supply voltage of 52.5 V. The DRV8432 is capable of delivering 2 x 7-A continuous output current and 2 x 12-A peak ...

    slf4j-jdk14-1.0.1.jar

    SLF4J JDK14绑定 org.slf4j/slf4j-jdk14/1.0.1/slf4j-jdk14-1.0.1.jar

    B4A安装文件(附教程).7z

    第14-15章(14章B4A语言15章画图).doc 第14章节Beginners Guide(B4A语法).doc 第15 图形图像.pdf B4A.exe b4a_bridge.apk installer_r24.4.1-windows.exe jdk-8u241-windows-x64.exe sdk-tools-windows-4333796.zip

    波讯 BHU 说明书波讯 BHU 说明书 快速配置手册

    波讯 BHU 说明书波讯 BHU 说明书 ...2.1 选择Bridge-AP模式 3 2.2 选择Bridge-Station模式 7 2.3 选择Bridge-Repeater模式 10 2.4 选择Router-AP模式 14 2.5 选择Router-Station模式 18 2.6 选择Router-Repeater模式 22

    常用的PROTEL99SE元件库封装库芯片库接插件库739个(PROTEL封装库).lib

    BRIDGE-P4/X2.1 C4X4 C4X7 C5X5 C5X7W1 C5X7W2 C5X8 C6.3X6.3 C6X8 C8X8 C8X10 C8X12 C10X10 C10x16 C12.5X20W1 C13X13 C13x20 C16X25 C18X35 C23x20 C40MM C0201 C0402 C0402S C0603 C0805 C1206 C1206A C1210 C...

Global site tag (gtag.js) - Google Analytics