设计模式之桥接模式

桥接模式

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");
}


```