`

Bridge 模式(转)

阅读更多

1.未使用Bridge实例:

java 代码
  1. abstract   class  Shape{   
  2.      public   void  draw();   
  3. }   
  4.   
  5. class  Rectangle  extends  Shape{}   
  6.   
  7. class  Circle  extends  Shape{}   
  8.   
  9. //这里业务出现了多种画图方式,DP1,DP2……   
  10.   
  11. //使用继承,创建不同绘图的类,类数量增多   
  12.   
  13. class  V1Rectangle  extends  Rectangle{   
  14.      public   void  draw(){   
  15.         DP1.draw_line();   
  16.     }   
  17. }   
  18.   
  19. class  V2Rectangle  extends  Rectangle{   
  20.      public   void  draw(){   
  21.         DP2.draw_line();   
  22.     }   
  23. }   
  24.   
  25. class  V1Circle  extends  Circle{   
  26.      public   void  draw(){   
  27.         DP1.draw_Circle();   
  28.     }   
  29. }   
  30.   
  31. class  V2Circle  extends  Circle{   
  32.      public   void  draw(){   
  33.         DP2.draw_Circle();   
  34.     }   
  35. }   
  36.   
  37.   

2.传说中的Bridge模式

java 代码
  1. abstract   class  Shape{   
  2.      public   void  draw();   
  3. }   
  4.   
  5. //这里业务出现了多种画图方式,DP1,DP2……   
  6. //抽象出接口出DP1,DP2   
  7. interface  Drawing{   
  8.      public   void  drawLine();   
  9.      public   void  drawCircle();   
  10. }   
  11.   
  12. class  V1Drawing{   
  13.      public   void  drawLine(){};   
  14.      public   void  drawCircle(){};   
  15. }   
  16.   
  17. class  V2Drawing{   
  18.      public   void  drawLine(){};   
  19.      public   void  drawCircle(){};   
  20. }   
  21.   
  22. //使用组合 ,聚集Drawing   
  23. class  Rectangle  extends  Shape{   
  24.      public   void  draw(Drawing dp){   
  25.         dp.drawLine();   
  26.     }   
  27. }   
  28.   
  29. class  Circle  extends  Shape{   
  30.      public   void  draw(Drawing dp){   
  31.         dp.drawCircle();   
  32.     }   
  33. }
  34. //抽象类Shape的派生类,使用一组实现(DP1,DP2)的接口
  35. //使得派生类不依赖于一组具体的实现,从设计模式而言,这称为Bridge模式

3.Bridge与Strategy模式

  1. 初读Bridge模式一头雾水,看过实例代码后,才略为知道其用途。感觉与Strategy模式相似,查阅相关信息后,个人认为如下   
  2. 从考虑问题而言:   
  3. Strategy模式:将具体算法封装,便于使用类替换算法   
  4. Bridge模式:将一组抽象类的派生类使用的另一组实现进行抽象,使得派生类不依赖于具体实现
  5.   
  6. 从实现而言,两者十分相似:   
  7. Strategy和Bridge目的都是将实现抽象化,使用组合,而非直接继承。   
  8. 区别就在Strategy思考的是抽象具体算法,Bridge是一组派生类在使用,抽象另外一组服务。  
  9. 实际处理的问题不同,故分为两种不同模式
 
分享到:
评论

相关推荐

    Bridge模式

    Bridge模式是一种结构型设计模式,它将抽象部分与其实现部分分离,使它们可以独立进行变化。在Bridge模式中,抽象类(Abstract Class)和实现类(Implementor Class)是两个独立的继承体系,通过一个“桥梁”类...

    (结构型模式)Bridge模式

    Bridge模式是一种设计模式,属于结构型模式之一,其主要目的是将抽象部分与实现部分分离,使得两者可以独立地进行变化。这种模式的核心思想是“抽象不应该依赖于具体,而应该依赖于抽象”。Bridge模式通过引入一个...

    软件设计模式 bridge模式 代理模式等

    软件设计模式,共包含二十多种模式,做IT的必备知识呀!

    【Java 设计模式-源码】Bridge 模式:在 Java 中解耦抽象与实现

    本文将介绍 Bridge 模式,它是一种结构型设计模式,用于解耦抽象与实现,增强软件系统的灵活性和可扩展性。 二、Bridge 设计模式的别名 Handle/Body 三、Bridge 设计模式的意图 Bridge 设计模式是 Java 中的一种结构...

    设计模式之Bridge模式

    Bridge模式是对抽象和具体的进一步抽象。假设你有一个抽象类,一个具体类,现在需要将两者的变化都考虑进去,这就需要bridge。这是经典设计模式中唯一的可以同时处理抽象和具体同时变化的设计模式

    Bridge模式代码

    Bridge模式是一种设计模式,主要目的是将抽象部分与实现部分解耦,使得它们可以独立地进行变化。在Java编程中,这种模式的应用可以帮助我们构建更灵活、可扩展的系统。Bridge模式通常由四个主要角色组成:抽象...

    桥模式Bridge.rar

    1. **Bridge.h**: 这个头文件定义了桥模式的抽象接口,通常包含多个纯虚函数,用于定义接口的公共操作。 2. **ConcreteImplementorA.h/cpp**: 具体实现类A的头文件和源文件,实现了Bridge接口的一部分或全部功能,...

    Bridge 桥接模式

    C#面向对象设计模式 Bridge 桥接模式 视频讲座下载

    Bridge 桥接模式(结构型模式)

    桥接模式(Bridge Pattern)是一种结构型设计模式,它的主要目的是将抽象部分与实现部分分离,使得它们可以独立地进行变化。在软件工程中,这种分离有助于降低复杂性,提高代码的可维护性和可扩展性。桥接模式的核心...

    Docker为网络bridge模式指定容器ip的方法

    Docker在创建容器时有四种网络模式,bridge为默认不需要用--net去指定,其他...那Docker为网络bridge模式指定容器ip该如何实现呢?下面通过通过这篇文章一起看看吧,文中给出了详细的示例代码,有需要的可以参考借鉴。

    容器技术-Bridge网络模式.pptx

    容器技术-Bridge网络模式 容器技术是近年来非常流行的一种虚拟化技术,它可以将应用程序及其依赖项打包成一个轻量级的容器,实现了应用程序的快速部署和迁移。容器技术有很多种网络模式,其中Bridge网络模式是最...

    bridge结构设计模式

    在给定的文件列表中,我们可以看到涉及到Bridge模式的一些关键组件: 1. **Abstraction**(抽象类):这是桥接模式的核心抽象部分,定义了客户需要的接口,并持有一个指向实现部分的指针。在`abstraction.cpp`和`...

    桥接(bridge)模式

    桥接(Bridge)模式是一种设计模式,它将抽象部分与实现部分分离,使得它们可以独立进行变化。在软件工程中,这种分离对于管理和维护复杂的系统非常有用,因为它可以降低复杂性,提高代码的可扩展性和可维护性。下面...

    Docker基础-19-网络-bridge模式和docker0详解.rar

    本资料主要探讨了Docker的网络桥接模式(Bridge模式)以及其默认网络设备docker0,这对于理解和运用Docker服务至关重要。 首先,Docker的Bridge模式是Docker容器默认的网络模式。在这个模式下,每个容器都会被分配...

    Java设计模式之桥模式(Bridge模式)介绍

    桥模式(Bridge模式)是一种设计模式,主要用于将抽象部分与实现部分解耦,使得它们能够独立地变化。在Java中,这种模式可以帮助我们构建更加灵活和可扩展的系统。以下是关于桥模式的详细解释: 首先,理解桥模式的...

    设计模式之桥接模式BridgePattern

    桥接模式(Bridge Pattern)是设计模式中的一种结构型模式,它主要解决的是在软件设计中,当抽象和实现之间存在紧密耦合时,如何使这两者能够独立地变化。这种模式通过引入一个抽象层来分离接口和实现,使得它们可以...

    设计模式Bridge学习

    针对设计模式中的 bridge 模式,做了一个小例子,希望对设计模式研究的朋友有所帮助。

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

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

Global site tag (gtag.js) - Google Analytics