(五)设计原则之合成复用原则
合成复用原则定义:在系统中尽量多使用组合或聚合关联关系,少使用或不使用继承关系。
为何?
因为继承存在一个风险,当超类的实现发生变更了,其子类也不得不发生改变,如此一来就违反了开闭原则,因此慎用继承;
具体如何使用:
1.尽量使用对象来组合;
2.通过关联关系使用一些已有的对象;
其中组合和聚合是要一点区分,在类的设计上,是有区分的;例如人和四肢,这个时候用组合的关系;例如班级和学生,这个时候用聚合的关系;显然,组合要比聚合对应的整体与部分关系强烈许多。
如图的桥接模式,Abstraction与Implementor的关系用的是聚合关系;(对应接口和抽象类的实现是应该用基础的,因为我们要遵循面向抽象编程;)