`
wdt1988520
  • 浏览: 15438 次
社区版块
存档分类
最新评论

桥梁模式Bridge

阅读更多

桥梁模式:又称柄体模式【GOF95】桥梁模式的用意是"将抽象化 (Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。

 

关键词: 抽象化、实现化、脱耦

 

脱耦:

 所谓耦合就是两个实体之间存在某种强关系,比如说java中的继承。所谓脱耦就是将两个实体之间存在的这种强关系去掉,或者将两者之间的关系改为弱关系。

 java类之间的关系分为:继承、实现、依赖、聚合、关联、组合。

 强关系:继承、实现

 弱关系:依赖<聚合<关联<组合。

 依赖是一种非常弱的关系,一种临时、偶然的关系,如:表现为一个类A的一个方法传入一个类B当参数。

 聚合是一种has-a的关系,如:一台电脑有一个cpu,这里的电脑和cpu是一种整体与部分的关系,表现为一个类A引用了一个类B作为属性。

 关联是一种平等关系,如:我和我的朋友,这里我和我的朋友是平等的,表现为一个类A引用一个类B作为属性,和聚合关系表现一直。

  组合是一种比较强的关联关系contains-a:如:我和我的心脏,这里我和我的心脏是整体和部分的关系,但这两者之间的关系式不可以分割的,但我消失心脏就随之消失。代码上的表现和关联关系一致。

 

 

桥梁模式的结构:

 实现图:



 
从图中不难看出:

1、Abstracion与RefinedAbstaraction组成的一个抽象化等级结构。

2、Implementor与ConcreteImplementorA、ConcreteImplementorB组成一个实现化等级结构。

图中角色定义:

Abstracion抽象化角色:定义抽象对象,并对Implementor实现化对象进行引用。

RefinedAbstracion抽象化对象的实现:对父类的修改。

Implementor实现化对象:约定实现对象的行为,没有具体的实现。

ConcreteImplementor:实现化对象行为的实现。

 

抽象化角色就像是一个水杯的手柄,而实现化角色和具体实现化角色就像是水杯的杯身。手柄控制杯身,这就是此模式别名“柄体”的来源。

 

 

 具体代码:

//抽象化
public abstract class Abstraction{
    protected Implementor impl;//聚合体现

    public Abstraction(Implementor impl){
        this.impl=impl;
    }

    public void operation(){
       impl.operationImpl();//委派对象调用方法
    }
    
}

//抽象化对象实现
public class refinedAbstraction extends Abstration{

   public refindedAbstraction(Implementor impl){
        this.impl=impl;
   }

   //其他方法
   public void otherOperation(){
        
   }
}

//实现化
public interface Implementor{
   public void operationImpl();
}

//实现
public class ConcreteImplementorA implements Implementor{

   public void operationImpl(){

   }
}

public class ConcreteImplementorB implements Implementor{

   public void operationImpl(){

   }
}

 

main(){
  RefinedAbstractor r=new RefinedAbstractor (new ConcreateImplementorA());

 r.operation();

}

 适用场景:

    1、一个抽象对象,有各种各样的行为。比如:数据库的链接,采用JDBC连接。可以把JDBC抽象化一个对象,这个对象可以链接不同的数据库(不同的行为实现)。这时可采用桥梁模式。

 

 

    桥梁模式使用频率不高,在一些框架中都采用IOC(控制反转)中的依赖注入(DI)方式,来减少对象之间的耦合程度。

    如果不明白的同学可以看看IOC的原理,其实就是通过反射(类型或者类名),动态生成类。

 

 

  • 大小: 17.4 KB
  • 大小: 46.9 KB
分享到:
评论

相关推荐

    设计模式C++学习之桥梁模式(Bridge)

    **桥梁模式(Bridge)**是一种结构型设计模式,它的主要目的是将抽象部分与其实现部分解耦,使得它们可以独立地进行变化。在C++编程中,这种模式尤其有用,因为它允许我们创建灵活且可扩展的系统,同时保持代码的低...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合模式COMPOSITE PATTERN 16、观察者模式OBSERVER PATTERN 17、责任链模式 18、...

    设计模式之桥梁模式实现

    桥梁模式(Bridge Pattern)是设计模式中的一种结构型模式,它的核心思想是将抽象部分与实现部分分离,使得它们可以独立地进行变化。在这个主题中,我们将深入探讨桥梁模式的原理、结构以及如何在Java中实现。 首先...

    设计模式之桥梁模式

    **桥梁模式(Bridge Pattern)详解** 桥梁模式是一种结构型设计模式,它将抽象部分与实现部分分离,使得它们可以独立地进行变化。这种模式的主要目的是为了将抽象化和实现化解耦,使得两者可以独立发展,增加了系统...

    桥梁模式实例

    桥梁模式是一种设计模式,它是结构型模式的一种,其主要目的是将抽象部分与实现部分分离,使得它们可以独立地进行变化。在Java中实现桥梁模式,我们可以有效地解耦系统中的类,提高代码的可扩展性和可维护性。 首先...

    学习php设计模式 php实现桥梁模式(bridge)

    【PHP设计模式】桥梁模式(Bridge Pattern)是一种结构型设计模式,它的主要目的是将抽象部分与其实现部分解耦,使两者能够独立地进行变化。在PHP中,桥梁模式可以帮助我们构建更灵活、可扩展的系统,降低组件间的...

    (结构型模式)Bridge模式

    Bridge模式通过引入一个抽象接口作为桥梁,使得抽象类与其实现类能够解耦,提供更大的灵活性。 在软件开发中,随着系统的复杂性增加,抽象类和它的实现类可能会变得越来越庞大,导致代码难以维护。Bridge模式通过将...

    Bridge模式

    在Bridge模式中,抽象类(Abstract Class)和实现类(Implementor Class)是两个独立的继承体系,通过一个“桥梁”类(Bridge Class)进行连接,使得抽象部分可以动态地更换不同的实现部分,实现部分也可以独立地...

    桥梁模式DEMO

    1. **模式定义**:桥梁模式(Bridge Pattern)是一种行为设计模式,它将抽象部分与实现部分分离,使得它们可以独立地进行变化。这种模式的主要目标是将抽象部分和实现部分解耦,这样即使两部分都需要改变,也可以...

    JAVA桥梁模式.docx

    **桥梁模式(Bridge Pattern)**是一种设计模式,属于对象的结构模式,主要目的是为了将抽象部分与其实现部分分离,使这两者可以独立地进行变化。这种模式也被称为柄体模式或接口模式,它有助于实现开闭原则,即对扩展...

    JavaScript设计模式–桥梁模式引入操作实例分析

    JavaScript设计模式中的桥梁模式是一种结构型模式,它旨在将抽象部分与实现部分分离,使得它们可以独立地进行变化。在本文中,通过几个实例来解释如何在JavaScript中应用桥梁模式。 首先,我们来看一个基本的事件...

    GOF中桥梁模式的java实现,及说明.pdf

    **一、桥梁模式的核心概念** 1. **抽象化(Abstraction)**:这是桥接模式中的关键角色,它定义了一组接口,这些接口定义了客户程序期望的抽象操作。抽象化角色通常包含对实现化角色的引用,以便调用相应的实现方法...

    PHP设计模式(六)桥连模式Bridge实例详解【结构型】

    本文实例讲述了PHP设计模式:桥连模式Bridge。分享给大家供大家参考,具体如下: 1. 概述  在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向...

    Bridge 桥接

    在传统的继承关系中,抽象类和具体实现通常是紧密绑定的,而桥接模式通过引入一个“桥梁”角色,使得两者可以独立发展。这提供了更大的灵活性,允许在运行时动态地改变对象的行为。 在IT领域,桥接模式常用于处理...

    您的设计模式.pdf。

    桥梁模式(BRIDGE PATTERN) 桥梁模式是一种结构型设计模式,它将一个类的抽象部分与实现部分分离,以便可以独立地更改它们。桥梁模式可以帮助开发者编写更加灵活的代码,以提高系统的可维护性。例如,在一个游戏中...

    JAVA设计模式.rar

    策略模式【STRATEGY PATTERN】 ...桥梁模式【BRIDGE PATTERN】  命令模式【COMMAND PATTERN】  装饰模式【DECORATOR PATTERN】 迭代器模式【ITERATOR PATTERN】  组合模式【COMPOSITE PATTERN】 ......

    JavaScript设计模式.pdf

    3.桥梁模式(Bridge Pattern): 桥梁模式是将抽象部分与实现部分分离,使他们可以独立地变化。它的主要作用是降低耦合度,提高代码的灵活性和可扩展性。 4. 装饰者模式(Decorator Pattern): 装饰者模式是动态地...

    b4a_bridge.apk.rar

    - **连接建立**:b4a_bridge.apk的主要作用是在Android手机与开发者的电脑之间建立桥梁,允许两者通过网络进行通信,实现远程调试。 - **调试接口**:这个程序可能包含了必要的API和协议,使得B4A IDE可以发送调试...

    设计模式之美—学习笔记

    适配器模式(Adapter)允许不同接口的对象协同工作,桥梁模式(Bridge)将抽象部分与其实现部分分离,使它们可以独立变化。装饰模式(Decorator)可以在运行时动态地给对象添加新的行为或责任,而代理模式(Proxy)...

Global site tag (gtag.js) - Google Analytics