桥接模式
Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。
#include
using namespace std;
class Bullet
{
public:
virtual void instanceBullet() = 0;
};
class NormalBullet : public Bullet
{
public:
void instanceBullet()
{
cout<<"普通子弹"<<endl;
}
};
class CircleBullet : public Bullet
{
public:
void instanceBullet()
{
cout<<"圆形子弹"<<endl;
}
};
class FanBullet : public Bullet
{
public:
void instanceBullet()
{
cout<<"扇形子弹"<instanceBullet();
}
};
class Whirlybird :public Enemy
{
public:
Whirlybird(Bullet* bullet):Enemy(bullet)
{
}
virtual void initBullet()
{
m_bullet->instanceBullet();
}
};
class Bomber :public Enemy
{
public:
Bomber(Bullet* bullet):Enemy(bullet)
{
}
virtual void initBullet()
{
m_bullet->instanceBullet();
}
};
void main()
{
Enemy* enemy = NULL;
Bullet* bullet = NULL;
bullet = new NormalBullet();
enemy = new Warcraft(bullet);
enemy->initBullet();
delete bullet;
delete enemy;
//////////////////////////////////////////////////////////////////////////
bullet = new CircleBullet();
enemy = new Warcraft(bullet);
enemy->initBullet();
delete bullet;
delete enemy;
//////////////////////////////////////////////////////////////////////////
bullet = new FanBullet();
enemy = new Warcraft(bullet);
enemy->initBullet();
delete bullet;
delete enemy;
system("pause");
}
```