C++实现桥接模式代码

桥接(Bridge)是一种结构型设计模式,用于分离抽象接口及其实现。在C++中,可以通过以下方式实现桥接模式:

#include <iostream>
 
// 抽象类接口
class AbstractionImp {
public:
    virtual void operation() = 0;
    virtual ~AbstractionImp() {}
};
 
// 实现类
class ConcreteImpA : public AbstractionImp {
public:
    void operation() override {
        std::cout << "ConcreteImpA operation." << std::endl;
    }
};
 
class ConcreteImpB : public AbstractionImp {
public:
    void operation() override {
        std::cout << "ConcreteImpB operation." << std::endl;
    }
};
 
// 抽象类
class Abstraction {
protected:
    AbstractionImp* imp;
public:
    Abstraction(AbstractionImp* imp) : imp(imp) {}
    virtual ~Abstraction() { delete imp; }
    virtual void operation() {
        imp->operation();
    }
};
 
// 扩展抽象类
class RefinedAbstraction : public Abstraction {
public:
    RefinedAbstraction(AbstractionImp* imp) : Abstraction(imp) {}
    void extraOperation() {
        // 可以添加额外的操作
        std::cout << "RefinedAbstraction operation." << std::endl;
    }
};
 
int main() {
    AbstractionImp* impA = new ConcreteImpA();
    AbstractionImp* impB = new ConcreteImpB();
 
    Abstraction* abstractionA = new RefinedAbstraction(impA);
    Abstraction* abstractionB = new RefinedAbstraction(impB);
 
    abstractionA->operation();
    abstractionB->operation();
 
    delete abstractionA;
    delete abstractionB;
 
    return 0;
}

相关推荐

  1. C++实现模式代码

    2024-04-14 10:54:05       37 阅读
  2. 模式(极简c++)》

    2024-04-14 10:54:05       38 阅读
  3. C++中的模式

    2024-04-14 10:54:05       24 阅读
  4. C++ 模式 (Bridge Pattern)

    2024-04-14 10:54:05       20 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 10:54:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 10:54:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 10:54:05       82 阅读
  4. Python语言-面向对象

    2024-04-14 10:54:05       91 阅读

热门阅读

  1. 软件设计模式(Golang)

    2024-04-14 10:54:05       108 阅读
  2. LeetCode-热题100:146. LRU 缓存

    2024-04-14 10:54:05       43 阅读
  3. docker nginx-lua发送post json 请求

    2024-04-14 10:54:05       50 阅读
  4. P8683 [蓝桥杯 2019 省 B] 后缀表达式

    2024-04-14 10:54:05       40 阅读
  5. sed命令多行处理

    2024-04-14 10:54:05       39 阅读
  6. 迪米特法则

    2024-04-14 10:54:05       46 阅读
  7. 游戏内鼠标光标样式切换

    2024-04-14 10:54:05       37 阅读
  8. vue3组件注册

    2024-04-14 10:54:05       43 阅读
  9. 大数据之 Hive 快速搭建的详细步骤

    2024-04-14 10:54:05       42 阅读
  10. npm: .npmrc pnpm

    2024-04-14 10:54:05       38 阅读