桥接模式(C++)

**定义:**桥接模式(Bridge Pattern)是一种结构型设计模式,它通过将抽象部分与它的实现部分分离,使它们都可以独立地变化。这种模式主要用于当系统的抽象部分和实现部分需要独立地进行扩展时,使得两者之间的耦合度降低。

代码:

cpp 复制代码
class Shape
{
public:
     virtual void drawShape() = 0;
};
class Rectangle : public Shape
{
public:
    virtual void drawShape() override
    {
        std::cout << " Rectangle  Draw" << std::endl;
    }
};
class Circle : public Shape
{
public:
    virtual void drawShape() override
    {
        std::cout << " Circle Draw" << std::endl;
    }
};
class Color
{
public:
     Color(Shape*pShape) : m_pShape(pShape){}
     virtual void drawColor() = 0;
protected:
     Shape *m_pShape = nullptr;
};
class Red : public Color
{
public:
    Red (Shape*pShape) : Color(pShape){}
    void drawColor()
    {
        m_pShape ->drawShape();
    }
};
class Blue : public Color
{
public:
    Blue (Shape*pShape) : Color(pShape){}
    void drawColor()
    {
        m_pShape ->drawShape();
    }
};
int main(int argc, char *argv[])
{
     Shape *pShapeObj = new Rectangle ();
     Color *pColorObj = new Red (pShapeObj);
     pColorObj ->drawColor();
     return 0;
}
相关推荐
落羽的落羽2 分钟前
【项目】JsonRpc框架——功能测试、项目总结
linux·服务器·开发语言·c++·qt·算法·机器学习
Lucis__6 分钟前
图的高阶算法:从构造最小生成树到求解最短路径问题
数据结构·c++·算法·图论
好评1248 小时前
【C++】智能指针全解
c++·智能指针
是阿建吖!9 小时前
【Linux】信号
android·linux·c语言·c++
城北徐宫9 小时前
Linux信号深度解剖:5种产生、3张表、4次切换
linux·c++·学习
liulilittle9 小时前
论 Linux 内核态全局稳态带宽的卡尔曼估计与工程实现
linux·服务器·网络·c++·计算机网络·tcp·通信
XBodhi.9 小时前
Visual Studio C++ 语法错误: 缺少“;”(在“return”的前面)
开发语言·c++·visual studio
froyoisle11 小时前
CSP-J 历年复赛 T1 及解析(2019~2025)
数据结构·c++·算法·csp-j·csp·算法竞赛·信息学
basketball61611 小时前
C++ 高级编程:2. 基本线程池实现
java·开发语言·c++
chao18984411 小时前
SGM(Semi-Global Matching)立体匹配算法 — C++ 实现
开发语言·c++·算法