为什么需要桥模式?
由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度, 乃至多个纬度的变化。而多维度的变化对于该类的使用者会带来复杂性上的急剧增加。
举例
现在的项目需求是我们的软件有两种版本:基础版和完美版。并且每种版本既要支持移动端,又要支持PC端。如果不使用设计模式,我们大概率会产生如下代码:
一、
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(){}
};
二、
//对于PlaySound、DrawShape、WriteText以及Connect的实现pc和mobile实现不