桥梁模式:又称柄体模式【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的原理,其实就是通过反射(类型或者类名),动态生成类。
相关推荐
**桥梁模式(Bridge)**是一种结构型设计模式,它的主要目的是将抽象部分与其实现部分解耦,使得它们可以独立地进行变化。在C++编程中,这种模式尤其有用,因为它允许我们创建灵活且可扩展的系统,同时保持代码的低...
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设计模式】桥梁模式(Bridge Pattern)是一种结构型设计模式,它的主要目的是将抽象部分与其实现部分解耦,使两者能够独立地进行变化。在PHP中,桥梁模式可以帮助我们构建更灵活、可扩展的系统,降低组件间的...
Bridge模式通过引入一个抽象接口作为桥梁,使得抽象类与其实现类能够解耦,提供更大的灵活性。 在软件开发中,随着系统的复杂性增加,抽象类和它的实现类可能会变得越来越庞大,导致代码难以维护。Bridge模式通过将...
在Bridge模式中,抽象类(Abstract Class)和实现类(Implementor Class)是两个独立的继承体系,通过一个“桥梁”类(Bridge Class)进行连接,使得抽象部分可以动态地更换不同的实现部分,实现部分也可以独立地...
1. **模式定义**:桥梁模式(Bridge Pattern)是一种行为设计模式,它将抽象部分与实现部分分离,使得它们可以独立地进行变化。这种模式的主要目标是将抽象部分和实现部分解耦,这样即使两部分都需要改变,也可以...
**桥梁模式(Bridge Pattern)**是一种设计模式,属于对象的结构模式,主要目的是为了将抽象部分与其实现部分分离,使这两者可以独立地进行变化。这种模式也被称为柄体模式或接口模式,它有助于实现开闭原则,即对扩展...
JavaScript设计模式中的桥梁模式是一种结构型模式,它旨在将抽象部分与实现部分分离,使得它们可以独立地进行变化。在本文中,通过几个实例来解释如何在JavaScript中应用桥梁模式。 首先,我们来看一个基本的事件...
**一、桥梁模式的核心概念** 1. **抽象化(Abstraction)**:这是桥接模式中的关键角色,它定义了一组接口,这些接口定义了客户程序期望的抽象操作。抽象化角色通常包含对实现化角色的引用,以便调用相应的实现方法...
本文实例讲述了PHP设计模式:桥连模式Bridge。分享给大家供大家参考,具体如下: 1. 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向...
在传统的继承关系中,抽象类和具体实现通常是紧密绑定的,而桥接模式通过引入一个“桥梁”角色,使得两者可以独立发展。这提供了更大的灵活性,允许在运行时动态地改变对象的行为。 在IT领域,桥接模式常用于处理...
桥梁模式(BRIDGE PATTERN) 桥梁模式是一种结构型设计模式,它将一个类的抽象部分与实现部分分离,以便可以独立地更改它们。桥梁模式可以帮助开发者编写更加灵活的代码,以提高系统的可维护性。例如,在一个游戏中...
策略模式【STRATEGY PATTERN】 ...桥梁模式【BRIDGE PATTERN】 命令模式【COMMAND PATTERN】 装饰模式【DECORATOR PATTERN】 迭代器模式【ITERATOR PATTERN】 组合模式【COMPOSITE PATTERN】 ......
3.桥梁模式(Bridge Pattern): 桥梁模式是将抽象部分与实现部分分离,使他们可以独立地变化。它的主要作用是降低耦合度,提高代码的灵活性和可扩展性。 4. 装饰者模式(Decorator Pattern): 装饰者模式是动态地...
- **连接建立**:b4a_bridge.apk的主要作用是在Android手机与开发者的电脑之间建立桥梁,允许两者通过网络进行通信,实现远程调试。 - **调试接口**:这个程序可能包含了必要的API和协议,使得B4A IDE可以发送调试...
适配器模式(Adapter)允许不同接口的对象协同工作,桥梁模式(Bridge)将抽象部分与其实现部分分离,使它们可以独立变化。装饰模式(Decorator)可以在运行时动态地给对象添加新的行为或责任,而代理模式(Proxy)...