GOF设计模式之桥接(bridge)模式与组合模式(composite)
桥接(bridge)模式
桥接模式可以取代多层继承的方案。多层继承违背了单一职责原则,复用性较差,类的个数也非常多。桥接模式可以极大的减少子类的个数,从而降低管理和维护的成本。
桥接模式极大提高了系统可扩展性,在两个变化维度中任意扩展一个维度,都不需要修改原有的系统,符合开闭原则,适合多维度开发。
接口以及实现
1 | public interface Brand { |
继承类
1 | /** |
测设
1 | public class Client { |
结果
销售联想品牌笔记本
销售戴尔品牌台式机
组合模式(composite)
抽象构件(Component)角色:定义了叶子和容器构件的共同点。
叶子(Leaf)构件角色:无子节点。
容器(Composite)构件角色:有容器特征,可以包含子节点。
组合模式模板
1 | /** |
模拟杀毒
1 | public interface AbstractFile { |
测试
1 | public class Client { |
结果
文件夹:我的收藏,进行查杀
图像文件:图片.jpg,进行查杀
文本文件:C.txt,进行查杀
文件夹:电影,进行查杀
视频文件:的士速递.mp4,进行查杀
视频文件:鬼怪疑云.mp4,进行查杀