#include<iostream>
using namespace std;
class Engin
{
public:
virtual void InstallEngin() = 0;
};
class Engin4000cc: public Engin
{
public:
virtual void InstallEngin()
{
cout << "I'm 4000cc engin, installing..." << endl;
}
};
class Engin5000cc: public Engin
{
public:
virtual void InstallEngin()
{
cout << "I'm 5000cc engin, installing..." << endl;
}
};
class Car
{
public:
Car(Engin *engin)
{
m_engin = engin;
}
virtual void InstallEngin() = 0;
protected:
Engin * m_engin;
};
class BMW5: public Car
{
public:
BMW5(Engin *engin):Car(engin)
{
m_engin = engin;
}
virtual void InstallEngin()
{
m_engin->InstallEngin();
}
Engin * m_engin;
};
class BYD: public Car
{
public:
BYD(Engin *engin):Car(engin)
{
m_engin = engin;
}
virtual void InstallEngin()
{
m_engin->InstallEngin();
}
Engin * m_engin;
};
int main()
{
Engin4000cc *engin4000cc = new Engin4000cc;
Engin5000cc *engin5000cc = new Engin5000cc;
BMW5 * bmw5 = new BMW5(engin4000cc);
BYD * byd = new BYD(engin5000cc);
bmw5->InstallEngin();
byd->InstallEngin();
delete engin4000cc;
delete engin5000cc;
delete bmw5;
delete byd;
return 0;
}
设计模式之-----桥接模式
最新推荐文章于 2024-09-12 08:02:05 发布