美文网首页我爱编程
结构型模式3-桥接模式

结构型模式3-桥接模式

作者: sunblog | 来源:发表于2018-04-16 23:04 被阅读0次

结构型模式3-桥接模式

桥接模式bridge

意图

将抽象部分与它的实现部分分离,使它们都可以独立的变化。

问题思考

参考《设计模式》。假设GUI框架支持Windows和macOS。分别有两个子类实现抽象Window:Win32Window, DarwinWindow。现在我们需要抽象一个IconWindow,专门用于Window的图标处理。为了使IconWindow支持Windows和macOS,我们需要两个子类,Win32IconWindow, DarwinIconWindow。那么问题来了,如果我们需要支持Linux平台呢。我们还需要为IconWindow添加一个LinuxIconWindow。这样很繁琐。如果你有更好的办法,说不定恰恰是桥接模式。

适用性

  • 不希望抽象在和它的实现部分之间有一个固定的绑定关系。比如希望可以在运行时更换实现。
  • 类的抽象和它的实现都可以通过子类的方式扩充(两个不同的变化方向)。Bridge模式使得可以对不同的抽象以及它的实现部分进行组合,并分别对它们进行扩充。

类图

![bridge]

实现

class Abstraction {
public:
    virtual void Operation() { impl->OperationImp(); };

private:
    Implementor *impl = nullptr;   // should be mImpl
};


class Implementor {
public:
    virtual void OperationImp() = 0;
};

class RefinedAbstraction : public Abstraction {
public:
    // call twice. or whater
    virtual void OperationTwice() {
        Operation();
        Operation();
    }
};

class ConcreteImplementorA : public Implementor {
public:
    void OperationImp() override {
        // some code
    }
};

注意:bridge模式和adapter模式的区别。bridge模式的目的是分离抽象和实现,没有改变原来的接口。而adapter的目的是使不兼容的接口兼容,改变了原来的接口(adaptee)。

相关文章

  • 结构型模式3-桥接模式

    结构型模式3-桥接模式 桥接模式bridge 意图 将抽象部分与它的实现部分分离,使它们都可以独立的变化。 问题思...

  • 结构型模式:桥接模式

    文章首发:结构型模式:桥接模式 七大结构型模式之二:桥接模式。 简介 姓名 :桥接模式 英文名 :Bridge P...

  • 设计模式分类汇总

    结构型 适配器模式 组合模式 桥接模式 代理模式 装饰者模式 门面模式 享元模式 行为型 责任链模式 命令模式 解...

  • 前篇

    一、常见的设计模式? 创建型:工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式 结构型:适配器模式、桥接...

  • 设计模式之桥接模式

    设计模式之桥接模式 1. 模式定义 桥接模式又称柄体模式或接口模式,它是一种结构性模式。桥接模式将抽象部分与实现部...

  • 09.桥接模式(结构型)

    桥接模式(结构型) 一、桥接模式概述 桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的...

  • java23种设计模式

    创建型 抽象工厂模式工厂方法建造者模式原型模式单态模式 结构型 适配器模式桥接模式组合模式外观模式装饰者模式享元模...

  • 桥接模式

    介绍 桥接模式(Bridge Pattern) 也称为桥梁模式,是结构型设计模式之一。桥接模式的作用就是连接 "两...

  • Java设计模式——桥接模式

    Java设计模式之桥接模式 回顾 上一期分享了适配器模式,主要为了实现解耦 桥接模式 简介 桥接模式是对象的结构模...

  • 设计模式-桥接模式

    桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是结构型设计模式之一。顾名思义其与现实中的桥...

网友评论

    本文标题:结构型模式3-桥接模式

    本文链接:https://www.haomeiwen.com/subject/abuykftx.html