桥接模式(构造型设计模式)

概念
Bridge模式又叫做桥接模式,是构造型的设计模式之一,Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任,他的主要特点是保持各个部分的独立性以及对他们的拓展功能。
结构图
这里写图片描述
需求
现有发动机Engine4400c,Engine4500c,车BMW5 ,BMW5 ,通过桥接实现车和发动机的任意组合。


class Engine{
public:
    virtual void engine() = 0;
    virtual ~Engine(){}
};
class Car{
protected:
    Engine *eng;
public:
    virtual void installEngine() = 0;
    virtual ~Car(){
        delete eng;
    }
};
class Engine4400c :public Engine{
public:
    virtual void engine(){
        cout << "Engine 4400c" << endl;
    }
    ~Engine4400c(){
        cout << "4400cdel" << endl;
    }
};
class Engine4500c :public Engine{
public:
    virtual void engine(){
        cout << "Engine 4500c" << endl;
    }
    ~Engine4500c(){
        cout << "4500cdel" << endl;
    }
};
class BMW5 :public Car{
public:
    BMW5(Engine *eng){
        this->eng = eng;
    }
    virtual void installEngine(){
        cout << "BMW5" << endl;
        eng->engine();
    }
};
class BMW6 :public Car{
public:
    BMW6(Engine *eng){
        this->eng = eng;
    }
    virtual void installEngine(){
        cout << "BMW6" << endl;
        eng->engine();
    }
};
int main(void){
    BMW5 *b5 = new BMW5(new Engine4400c());
    b5->installEngine();
    BMW6 *b6 = new BMW6(new Engine4500c());
    b6->installEngine();
    delete b5;
    delete b6;
    system("pause");
    return 0;
}

调试结果:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值