这本书中,关于包的设计有几个很有意思的观点,特别进行记录。
包的内聚性原则。所谓内聚性就是一个模块或者类只执行一项功能,并只执行一项功能。但是本书扩展了这个概念,并通过三个原则对内聚性进行检验
1、重用发布等价原则。
包的设计必须以,使用者的角度进行考虑,第一,如果这个包是为了重用而设计的,那么就不应该包括重用无关的内容。第二,除了重用以外,用户对重用的内容应该是共同的,而不应该是其中的一部分,例如一个包含了重用容器类的库就不应该包含一个金融重用类(一般谁会这么干呢?)。
2、共同重用原则
我想确信需要重用包中的一个类时,需要重用包中所有的类。(STL中我只用了MAP类,其他的不是都要哭了?)
3、共同封闭原则
通过吧一些确定的变化封装到一个包中,用于增强一旦变化只修改一个包的目的。这个和开闭原则是对应的,所谓开闭是模块是可扩展的,并且对于扩展,软件的其他地方是不需要修改的。
代码大全中,关于抽象、封装和内聚的原则比这个更精彩,但是这里包的设计验证值得参考。