四、橋接模式
橋接模式實現了接口和實現的分離,統一的接口由調用者使用,而實現則有各自根據需要來實現,具體代碼如下:
//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的派生類通過固定的接口調用操作系統的安裝接口,而不同的操作系統實現各自的安裝接口實現。