設計模式二三事——橋接模式

四、橋接模式

橋接模式實現了接口和實現的分離,統一的接口由調用者使用,而實現則有各自根據需要來實現,具體代碼如下:

//the unifor interface
class OS
{
public:
    virtual void InstallOS_Imp(){}
};

//different realization
class WindowOS : public OS
{
public:
    virtual void InstallOS_Imp()
    {
        cout<<"WindowOS"<<endl;
    }
};

class UnixOS : public OS
{
public:
    virtual void InstallOS_Imp()
    {
        cout<<"UnixOS"<<endl;
    }
};

class LinuxOS : public OS
{
public:
    virtual void InstallOS_Imp()
    {
        cout<<"LinuxOS"<<endl;
    }
};

//the user using the uniform interface
class Computer
{
public:
    Computer( OS* p ): m_p(p){}
    virtual void InstallOS(){};

protected:
    OS* m_p;
};

class AppleComputer : public Computer
{
public:
    AppleComputer( OS* p ): m_p( p ){}
    virtual void InstallOS()
    {
        m_p->InstallOS_Imp();
    }
};

class DellComputer : public Computer
{
public:
    DellComputer( OS* p ): m_p( p ){}
    virtual void InstallOS()
    {
        m_p->InstallOS_Imp();
    }
};


class HPComputer : public Computer
{
public:
    HPComputer( OS* p ): m_p( p ){}
    virtual void InstallOS()
    {
        m_p->InstallOS_Imp();
    }
};
上述代碼是了操作系統安裝的示例過程,其中OS表示操作系統,提供了統一的安裝接口,而不同的操作系統根據需要繼承並實現該接口。Computer表示電腦基類,它提供了操作系統安裝的統一接口,不同的電腦繼承實現該接口,在接口的實現過程中調用OS的安裝接口,實現了接口和實現的分離,Computer的派生類通過固定的接口調用操作系統的安裝接口,而不同的操作系統實現各自的安裝接口實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章