一、 桥梁(Bridge)模式
桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括"开-闭"原则(OCP)以及组合/聚合复用原则(CARP)都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。
桥梁模式的用意
【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。
抽象化
存在于多个实体中的共同的概念性联系,就是抽象化。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待【LISKOV94】。
实现化
抽象化给出的具体实现,就是实现化。
脱耦
所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。
将两个角色之间的继承关系改为聚合关系,就是将它们之间的强关联改换成为弱关联。因此,桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。这就是桥梁模式的用意。
二、 桥梁模式的结构
桥梁模式【GOF95】是对象的结构模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。
下图所示就是一个实现了桥梁模式的示意性系统的结构图。
可以看出,这个系统含有两个等级结构,也就是:
- 由抽象化角色和修正抽象化角色组成的抽象化等级结构。
- 由实现化角色和两个具体实现化角色所组成的实现化等级结构。
桥梁模式所涉及的角色有:
- 抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。
- 修正抽象化(Refined Abstraction)角色:扩展抽象化角色,改变和修正父类对抽象化的定义。
- 实
现化(Implementor)角色:这个角色给出实现化角色的接口,但不给出具体的实现。必须指出的是,这个接口不一定和抽象化角色的接口定义相同,实
际上,这两个接口可以非常不一样。实现化角色应当只给出底层操作,而抽象化角色应当只给出基于底层操作的更高一层的操作。
- 具体实现化(Concrete Implementor)角色:这个角色给出实现化角色接口的具体实现。
- 大小: 5.5 KB
分享到:
相关推荐
**桥梁模式(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)...