`
tailsherry
  • 浏览: 136178 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

桥接模式(Bridge)

阅读更多

一、介绍

桥接模式的主要目的是要将类的抽象部分与它的实现分离,使各个不同类之间都能独立的变化和衔接。

 


二、实例

首先,定义一个抽象的基类,可以说这就是桥梁吧!

public abstract class Soda {     
   private SodaImp sodaImp;    
      
   public void setSodaImp(SodaImp sodaImp) {   
       this.sodaImp = sodaImp;   
   }   
   public SodaImp getSodaImp() {   
       return this.sodaImp;   
   }   
      
   public abstract void pourSoda();   
}


注意这个类中间封装了一个SodaImp的基本操作类,这个类的主要目的也就是通过它的新方法pourSoda()来对外转发SodaImp中的基本动作。

 

下面的一些个类相对来说要简单些了,都是用来基于已有的桥梁来添砖加瓦的。

//SodaImp抽象类或接口定义   
public abstract class SodaImp {     
   public abstract void pourSodaImp();   
}   
  
//实例化的Soda类(可以定义多个)   
public class MediumSoda extends Soda {     
   public MediumSoda() {   
   }   
      
   public void pourSoda() {   
       SodaImp sodaImp = this.getSodaImp();   
       for (int i = 0; i < 2; i++) {   
           System.out.print("...glug...");   
           sodaImp.pourSodaImp();   
       }   
       System.out.println(" ");   
   }   
}   
  
//实例化的SodaImp类(可以定义多个)   
public class CherrySodaImp extends SodaImp {   
   CherrySodaImp() {}   
       
   public void pourSodaImp() {   
       System.out.println("Yummy Cherry Soda!");   
   }   
}  

 

而实际调用的过程可以示例如下:

class TestBridge {   
   public static void testCherryPlatform() {   
       System.out.println(   
         "testing medium soda on the cherry platform");   
       MediumSoda mediumSoda = new MediumSoda();   
       mediumSoda.setSodaImp(new CherrySodaImp());   
       mediumSoda.pourSoda();    
   }   
       
   public static void main(String[] args) {   
        testCherryPlatform();   
        ...   
   }   
} 

 

 

三、分析

从以上的实例,我们大致可以总结出桥接模式的几个主要角色:

  • Abstraction 定义抽象类的接口,维护一个指向Implementor类型对象指针
  • RefinedAbstraction 由Abstraction定义的接口扩充和实例化
  • Implementor 定义实现类的接口,一般来讲,该接口仅提供基本的操作,而Abstraction则定义了基于这些基本操作的较高层次的操作。
  • ConcreteImplementor 实现Implementor接口并定义它的具体实现。

实现一个桥接模式,我们需要定义Abstraction的桥接抽象类,并注意在其中封装Implementor的实现,其他的应该都显而易懂。

 

作为一种设计模式,桥接模式的主要特点就是:
1、分离接口及其实现部分,这里实现了Abstraction和Implementor的分离,有助于降低对实现部分的依赖性,从而产生更好的结构化系统。
2、提高了可扩充性,可以独立的对Abstraction和Implementor层次结构进行扩充。

分享到:
评论

相关推荐

    移动公司 吉比特 光猫 ZXHN G6611 路由模式router 改 桥接模式bridge 方法 详细教程

    移动公司吉比特光猫ZXHN G6611路由模式Router改桥接模式Bridge方法详细教程 在这篇教程中,我们将学习如何将移动公司吉比特光猫ZXHN G6611从路由模式(Router)改为桥接模式(Bridge)。这将允许用户使用光猫作为一个...

    设计模式之桥接模式BridgePattern

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

    设计模型之桥接模式 bridge C++实现源码,vs2019

    桥接模式(Bridge Pattern)是一种结构型设计模式,它的主要目的是将抽象部分与其实现部分解耦,使得它们可以独立地进行变化和发展。在C++编程中,这种模式的应用可以帮助我们构建灵活、可扩展的系统,尤其在面对...

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

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

    桥接模式和策略模式的区别,内含可运行代码和两者详细区别

    首先,桥接模式(Bridge Pattern)的核心思想是“分离抽象与实现”。它通过建立一个抽象层和一个实现层的独立继承体系,使得抽象部分和实现部分可以独立变化,形成一种解耦的设计。在桥接模式中,抽象类引用实现类的...

    结构型模式之桥接模式(bridge)

    桥接模式是设计模式中的一种结构型模式,其主要目的是为了分离抽象部分和实现部分,以便两者能够独立地进行变化。这种模式的核心理念是通过引入一个抽象层来封装多种可能的实现,使得抽象和实现之间形成一种“桥接”...

    设计模式---桥接模式

    桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。这种模式在软件工程中被广泛应用于处理组件之间的耦合问题,特别是当需要为同一抽象提供多种实现或者需要独立地改变它们时。 ...

    桥接(bridge)模式

    下面我们将详细探讨桥接模式的概念、结构、优点以及在实际开发中的应用。 桥接模式的核心思想是“抽象”和“实现”的解耦,它通过引入一个抽象层来分离接口和实现,形成两个独立的继承体系。这样,即使在运行时也...

    c++-设计模式之桥接模式(Bridge Pattern)

    桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使得两者可以独立地变化。这种模式常用于需要在多个维度上变化的场景,比如不同的形状和颜色,允许在不改变客户端代码的情况下增加新...

    设计模式的桥接模式的例子

    桥接模式是设计模式中的一种结构型模式,它旨在将抽象部分与实现部分解耦,使得它们可以独立地变化。这种模式将抽象类和它的实现类进行分离,通过一个抽象接口来连接它们,使得两者可以独立发展,增加了系统的灵活性...

    C#面向对象设计模式纵横谈(8):Bridge 桥接模式(结构型模式)

    桥接模式(Bridge Pattern)是面向对象设计中的一种结构型模式,它将抽象部分与实现部分分离,使得它们可以独立地进行变化。在C#编程中,桥接模式的应用能够帮助我们更好地解耦系统,提高代码的灵活性和可扩展性。 ...

    python 桥接模式(示例)

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

    C#面向对象设计模式纵横谈(8):Bridge 桥接模式(结构型模式) (Level 300)

    桥接模式(Bridge Pattern)是一种结构型设计模式,它旨在将抽象部分与其实现部分分离,使得它们可以独立地进行变化。在C#编程中,这种模式尤其有用,因为随着软件系统的复杂性增加,类的继承层次可能会变得难以管理...

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

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

    桥接模式代码示例

    桥接模式是一种设计模式,属于结构型模式,其主要目的是将抽象部分与实现部分分离,使得它们可以独立地进行变化。这种模式通过引入一个抽象化角色来实现抽象和实现的解耦,允许它们独立地扩展。在桥接模式中,抽象...

    ADSL桥接模式和路由模式的区别

    "ADSL 桥接模式和路由模式的区别" 在 ADSL 宽带接入方式中,桥接模式和路由模式是两种常见的工作模式。_bridge 模式是 ADSL ROUTER 的默认工作模式,主要用于单台电脑的接入,需要代理服务器或网关设备将局域网中的...

    Bridge 桥接模式

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

    设计模式之桥接模式,内含可运行代码

    在桥接模式中,抽象类(Abstraction)不直接引用具体实现(Implementation),而是通过一个桥接类(Bridge)来引用,这样抽象部分与实现部分可以独立变化,提供了更大的灵活性。 首先,我们来看一下桥接模式的基本...

    桥接模式(Bridge Pattern)原理图

    桥接模式是一种结构型设计模式,它的目的是将抽象化与实现化解耦,使得它们可以独立变化。这种模式主要用于处理当一个类存在两个或多个独立的变化的维度时的情况,例如,当一个类的抽象部分和实现部分可能发生变化,...

    设计模式之桥接模式

    桥接模式(Bridge Pattern)是设计模式中结构型模式的一种,它的主要目的是将抽象部分与实现部分解耦,使得它们可以独立地进行变化。在Java编程中,这种模式的应用可以帮助我们构建更加灵活、可扩展的代码结构。 ...

Global site tag (gtag.js) - Google Analytics