OO方面的散乱笔记:《UML面向对象设计基础》

作者:Meilir Page-jones

1. 面向对象软件的可理解性和可维护性,以及其它一些特性都是以封装性和Connanscence为基础的

2. 包:里面的类来自同一领域,但它们未必相互发生影响;组件:里面的类相互作用完成一系列业务逻辑 (启示:平时应该注意把内聚、耦合这种理念扩展到对象之外,扩展到包、组件或者更高的级别)

3.高内聚/低耦合并不是oo的专利,在结构化时代就已有比较系统化的研究;这方面可以看作者的另一本经典书籍:’practical guide to structured systems design’,它里面提出的一些东西在OO时代照样有用.

4. Encumbrance:  一个类的encumbrance就是它直接引用和间接引用的所有类的数量。 越低层次的类,它的encumbrance就应该越小; 越高层次的类,它的encumbrance就应该越大。

5.一些错误的内聚:

  a.混合事例型内聚:比如在“几何图形”这个类里搞一个“对角线”属生就是这种不当内聚,因为虽然四边形有对角线,但三角形并没有对角线。 

  b.混合领域型内聚:比如在“实数”这个类里写一个“华氏温度转摄氏温度”的方法,这样做会从扩大一个类的encumbrance,引入不相关的领域,导致可重用性降低

  c.混合角色型内聚:比如在“人”这个类里写一个“拥有狗的数目”的方法。人和狗可能都属于业务领域,但人和狗完全是不同的角色。

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.