zoukankan      html  css  js  c++  java
  • 桥接模式-pattern系列

    git链接

    桥接模式

    桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。

    • 抽象化
      存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待。
    • 实现化
      抽象化给出的具体实现,就是实现化。
    • 脱耦
      所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。

    桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。

    例子:
    一个杯子,它有形状,有颜色,我们得到下面图的关系,虽然我们单独把颜色和形状抽象出来了,担当我们新出现一种颜色的时候,我们需要新增出和形状的实现进行组合的全部类。

    这个是提供的桥接模式的解决方案的类图:

    解释地址:https://www.journaldev.com/1491/bridge-design-pattern-java

    因为前面提到在颜色和形状的上面是一个杯子的抽象,所以我想在实际使用中我们更多的可能是,将多个不同类型的实现部分抽象后,以组合的关系进行关联。

    我们可以看见shape 和 color (实现)可以扩展,cup的种类(抽象)也可以扩展。

  • 相关阅读:
    数据库命令基本操作
    26、驱动模块和桩模块的概念和区别
    图像的均值、均方值、方差、均方差、标准差
    67、反射机制
    66、线程的生命周期
    PHP 的 SAPI 是个什么东西(转)
    无需重新编译安装PHP扩展的方法
    swoole之创建子进程
    swoole之异步文件IO
    swoole之任务和定时器
  • 原文地址:https://www.cnblogs.com/killbug/p/8526770.html
Copyright © 2011-2022 走看看