桥接模式的定义:将抽象部分与它的实现部分分离,是他们都可以独立地变化。
这样的定义,对于初学者的我,简直就是一头雾水。什么叫做抽象与实现分离?
其实上网查阅相关资料,再加上自己工程实践,才慢慢明白这句话的意思。
所谓的抽象就是某个类暴露给外界的接口(说白了就是可调用的函数);
实现就是这些接口(函数)如何实现。
通常当一个抽象有多个实现时,使用继承就可以了。但是继承机制将抽象部分与实现部分固定在一起,使得难以对抽象部分和实现部分独立地进行修改、扩充和重用。(书中原话)
其实也就是说,如果你修改基类,例如增加了一个接口,那么所有的派生类都可能对这个函数加以实现。这样抽象部分就影响了实现部分。而桥接模式就是将这种耦合解耦。
下面说一下我的应用场景,当然这并不是一个非常经典的案例,我只是为了联系桥接模式而这样设计的:
现在需要一个通用网络通信类库,但通信大致分为UDP和TCP通信,不管哪种通信机制,