23种设计模式之桥接模式(结构型,4 Bridge,c++实现)
代码实现:
#include <iostream>
using namespace std;
class Engine
{
public:
virtual void installEngine() = 0;
};
class Engine4400C : public Engine
{
public:
virtual void installEngine()
{
cout << "install Engine4400C" << endl;
}
};
class Engine4500C : public Engine
{
public:
virtual void installEngine()
{
cout << "install Engine4400C" << endl;
}
};
class Car
{
public:
Car(Engine* engine)
{
this->engine = engine;
}
virtual void installEngine() = 0;
protected:
Engine* engine;
};
class BMW5 :public Car
{
public:
BMW5(Engine* engine) : Car(engine)
{
;
}
virtual void installEngine() {
cout << "I'm BMW5" << endl;
engine->installEngine();
}
};
class BMW6 :public Car
{
public:
BMW6(Engine* engine) : Car(engine)
{
;
}
virtual void installEngine() {
engine->installEngine();
}
};
void main()
{
Engine* engine = NULL;
Car* car = NULL;
engine = new Engine4400C();
car = new BMW5(engine);
car->installEngine();
delete engine;
delete car;
}