#include<iostream>
using namespace std;
class Engine
{
public:
virtual void InstallEngine() = 0;
};
class Engine4400cc :public Engine
{
public:
virtual void InstallEngine()
{
cout << "我是4400cc发动机,安装完毕!" << endl;
}
};
class Engine4500cc :public Engine
{
virtual void InstallEngine()
{
cout << "我是4500cc发动机,安装完毕!" << endl;
}
};
class Car
{
public:
Car(Engine *engine)
{
m_engine = engine;
}
virtual void InstallEngine() = 0;
protected:
Engine *m_engine;
};
class BMW5 :public Car
{
public:
BMW5(Engine*engine) :Car(engine){}
virtual void InstallEngine()
{
cout << "我是BMW5" << endl;
m_engine->InstallEngine();
}
};
class BMW6 :public Car
{
public:
BMW6(Engine*engine) :Car(engine){}
virtual void InstallEngine()
{
cout << "我是BMW6" << endl;
m_engine->InstallEngine();
}
};
void main()
{
Engine *engine = NULL;
Car *car = NULL;
engine = new Engine4500cc;
car = new BMW6(engine);
car->InstallEngine();
delete car;
car = new BMW5(engine);
car->InstallEngine();
delete car;
delete engine;
}
桥接模式
最新推荐文章于 2024-09-29 11:05:47 发布