设计模式(13)-桥接模式
思想:将一个类的抽象定义和具体实现解耦。
场景:该 模式的典型应用场景是:一个类的抽象定义已经确定,但是,其实现代码甚至原理可能会不同。比如:我们最熟悉的图形界面中的window的 实现,无论在什么操作系统,什么平台的机器上,一个window应具有的抽象定义基本上是一致的, 但是,其实现代码肯定会因为平台不同,机器的代码指令不同而不同。此时,如果希望您写的window类 能跨平台,应用Bridge模式就是一个好主意。
实现:该 模式的实现方法很简单,就是除了定义类的抽象定义之外,将一个类的所有实现代码独立出一个实现类。这样一来,无论是抽象定义还是实现类都能分别修改和重 用,但只要两部分的交互接口不变,还是可以方便的互相组装。当然,实际上也没有必要隔离出“所有实现代码”,只需要隔离需要的部分就行了。因此,也可以 说,从代码结构来看,Builder模式是一种变种的Bridge模 式的。也经常有人将Bridge模式和接口相比较,如果隔离出所有的实现,那么的确接口的方式也能 做到抽象定义和实现分离,但是,Bridge有其优势如下:一、究竟隔离多少代码到Bridge类 中可以灵活确定,二、减少了总的类的数目,三、允许被隔离出来的Bridge类被其它的类直接共享 使用。