低耦合与代码复用率相互矛盾
为了提高代码复用率,我们通常会将一些基础类(例如链表或堆栈)封装到一个或若干个基础类库里面,其他类库会调用这些基础类。
按软件高内聚低耦合的原则,一个类库应该是高内聚低耦合,减少与其他类库或包的联系,这就与代码复用率相互矛盾了。代码复用率要求将一些独立的类封装到一个库中,强调复用性;而低耦合则要求减少类库或包之间的联系,尽量将功能在一个类库中实现;因此低耦合和代码复用率之间存在一定程度的矛盾。
一些人或许会觉得代码复用之间拷贝代码或类就可以了,这会造成一些问题,先不说拷贝代码本身容易出现问题,代码多次拷贝也会造成代码维护困难,例如你将某个基础类多次拷贝,当发现这个类存在bug时,就需要对各个拷贝都进行修改,如果一些代码已经发布,维护就更困难了。