《OOD启思录》收获及勘误
《OOD启思录》 鲍志云译 人民邮电出版社 2004.7
《Object-Oriented Design Heuristics》 Arthur J.Riel
关键抽象之间的关系:使用关系、包含关系、继承关系、关联关系
需要解释的是关联关系,我以前的书对这个概念都没有进行解释或者定义或者说其他什么,这个书则把这个概念讲的很清楚,就是不同于前面三个关系的所有其他关系。
对于违反经典逻辑的问题的解决:违反逻辑。例如企鹅、鸵鸟不要建模成鸟,鸭嘴兽不要建模成哺乳动物,正方形不要建模成有长和宽的矩形等等。
墨菲定律:“凡事只要有出错的可能,就一定会出错”。
如果坏事情有可能发生,不管这种可能性多么小,它总会发生,并引起最大可能的损失。(不确定是否在这本书中有,好像总觉得有这句话,并且觉得这句话对计算机来说也很有价值)
书中居然有一处重大的逻辑上的错误:P78 5.5节
如果我没有看错的话,写的是私有和保护继承具有同样的访问性。
事情并非如此。如果继承,不管是什么继承,都只用考虑这两个层次关系,继承后的访问权限可以这样计算:基类的private对派生类来说不存在,其他的具有本来的访问权限和继承的方式中的最小值。列表可以表示如下:
继承方式/基类方法类型 | public | protected |
public | public | protected |
protected | protected | protected |
private | private | private |
P43 “房在”-》“放在”
P88 “离子”-》“例子”
P94 “参考文献10”-》“参考文献9”
P98 “图3.51”-》“图5.31”
P124 “图1.2”-》“1.2”
P126 “maxin”-》“mixin”
P143 “每人”-》“没人”
P162 “是不是”-》“不是”
P174 “以唯一”-》“唯一”
P180 “怀疑”-》“认为”
P195 “值得”-》“指的”
by:kangtian0
附:
多态的简单规则:只有在程序通过指向基类对象的指针或者基类对象的引用调用虚函数时,才会发生运行时的多态现象。 《C++沉思录》