zoukankan      html  css  js  c++  java
  • 桥接模式

    毛笔和蜡笔

    假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12 = 36支

    但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及到的对象个数仅为 3 + 12 = 15,远小于36,却能实现与36支蜡笔同样的功能

    如果增加一种新型号的画笔,并且也需要具有12种颜色,对应的蜡笔需增加12支,而毛笔只需增加一支为什么会这样呢?

    通过分析我们可以得知:在蜡笔中,颜色和型号两个不同的变化维度(即两个不同的变化原因)融合在一起,无论是对颜色进行扩展还是对型号进行扩展都势必会影响另一个维度

    但在毛笔中,颜色和型号实现了分离,增加新的颜色或者型号对另一方都没有任何影响

    如果使用软件工程中的术语,我们可以认为在蜡笔中颜色和型号之间存在较强的耦合性,而毛笔很好地将二者解耦,使用起来非常灵活,扩展也更为方便

    总结:

    实现系统时可能有多角度分类 / 多纬度处理(上述可以按照大小分类、按照颜色分类),每一种分类都可能变化他的变化与其他分类产生强依赖(紧耦合)

    而桥接模式就是用来将有依赖的【变化】进行分离的一种设计模式

  • 相关阅读:
    1024:保留3位小数的浮点数
    1023:Hello,World!的大小
    1023:Hello,World!的大小
    1023:Hello,World!的大小
    1022:整型与布尔型的转换
    1022:整型与布尔型的转换
    1022:整型与布尔型的转换
    CMD删除指定文件夹
    CMD删除指定文件夹
    C#xml读取节点数据方法
  • 原文地址:https://www.cnblogs.com/Scissors/p/9865119.html
Copyright © 2011-2022 走看看