桥接模式, bridge 模式。
如果你是一个 linux 的爱好者,也许你会发现 linux 下有两套不太一样的桌面环境,一个是 KDE ,一个是 GNOME 。如果现在你要开发一个 linux 的桌面应用程序,估计你也会觉得头大,为每个桌面环境单独写一个程序么,那样显然不就一个聪明的主意,意味着你的任意一个改动,另外一个也必须做出对应的变化。这个时候, bridge 模式就能派上用场了。
Bridge 模式能将抽象部分与实现部分完全分离,从而让它们各自演化。
Windows 下自然也会出现这样的问题,那我们常用的显示器分辨率来说吧,常用的分辨率有 800x600 、 1027x768 、 1600x900 ,那在不同的分辨率下,字符的渲染是不一样的。
桥接模式的优点
1)分离了接口和实现部分,二者独立演化
2)提高了可扩充性
3)细节对于客户来说透明
来看看具体的类图
来看看具体实现的代码
1) Window类
2) TextWindow类
3) IconWindow类
4) WindowImp类
5) SmallWindowImp类
6) MiddleWindowImp类
7) BigWindowImp类
8) WindowSystemFactory类
需要说明一下,这是一个Window的辅助类,用来模拟在不同的窗口之间切换
最后,来看下测试程序