桥接模式的作用是将类的功能层次结构
和类的实现层次结构
连接起来
假设现在有个Something
类,当我们想向它添加新功能时,可以编写一个它的子类,然后在子类中添加新的功能。这样就构成了类的功能结构。
当我们定义了一个抽象类,子类负责去实现这些抽象方法时,也形成了一个层次结构,这就叫类的实现层次结构。注意这里功能并没有增加,子类是为了具体实现抽象父类定义的方法。
试想有一个笔类,我们可以继承笔类,并向其添加画圆、画方等功能,这就是功能层次结构。假如我们要选择笔的颜色,那么我们可以在子类中添加方法来画出不同颜色的圆、方。现在我们要添加新功能画三角形,假设有12种颜色,那么为了添加这一个功能,又得重复写换颜色的12个方法。或者我们想添加新的颜色,那么又得修改所有的子类。这里功能层次结构和实现层次结构混杂在一起,难以扩展。
桥接模式可以将类的功能层次结构和类的实现层次结构分离。做到可以独立的修改功能及实现。
more >>