Bridge-桥模式
由于某些类型的固有实现逻辑,使得类型具有多个变化维度。
考虑这个例子,需要实现通信设计。
设置有Message类型,有Login、SendMessage、SendPicture,以及PlaySound、DrawShape、WriteText、Connect。
平台支持方面,需要支持PC平台设计,同时需要支持Mobile平台设计。
平台间的差异在于播放声音、图形绘制、写入文本、链接网络等功能的不同,考虑实现PC、Mobile继承Message,并重写上述功能函数。
之后,需求需要实现平台的经典版与华丽版。
经典版用与实现普通需求,华丽版提供更多的功能。
版本1
class Messager{
public:
virtual void Login(string username, string password)=0;
virtual void SendMessage(string message)=0;
virtual void SendPicture(Image image)=0;
virtual void PlaySound()=0;
virtual void DrawShape()=0;
virtual void WriteText()=0;
virtual void Connect()=0;
virtual ~Messager(){
}
};
//平台实现
class PCMessagerBase : public Messager{
public:
virtual void PlaySound(){
//**********
}
virtual void DrawShape(){
//**********
}
virtual void WriteText(){
//**********
}
virtual void Connect(){
//**********
}
};
class MobileMessagerBase : public Messager{
public:
virtual void PlaySound(){
//==========
}
virtual void DrawShape(){
//==========
}
virtual void WriteText(){
//==========