《Object-Oriented Software Construction》第2版读后感

断断续续用了几天时间读完了本书。读前目的是更深刻地理解OOAD及其用法,但发现书中原理性的讲解较多,举例实战讲解方面较少。感受如下:

  1. 作者从一开始设计了一种语言符号,并且从头到尾一直没给出该语言符号的名称,直到在后记中才说该语言符号是Eiffel。通过查阅资料,Eiffel仍在用,仍能从网络上下载最新的安装包,只是使用面没那么大。
  2. 本书作者Bertrand Meyer(伯特兰·迈耶)是面向对象领域的先驱,其出生与1950年,至今健在。我所读版本出版于1997年。该书仍在更新,据说已有第3版,准备抽空读下。
  3. 在上世纪90年代末出版的本书中,作者首创性地提出了许多OO原则。例如,开放-闭合原则(Open-closed principle)、基于契约地设计(Design by Contract)等等。本书许多地方从语言设计者的角度对比了不同语言设计的优劣。本书用了较大的篇幅讲解了ADT,Inheritance等,学术味浓,思想比较深刻,读后给人以启发。
  4. 书中内容丰富,不仅讲解利用编程语言本身的OO构造,还对并发、持久性、GUI、非面向对象语言中如何更好地使用面向对象方法给出了自己独特地思考。当然,有2章专门阐述了面向对象分析和设计的例子,虽然没用UML语言建模,虽然用的是Eiffel语言表达类的细节,我们仍能从中受到实战方面的启发。这与有些评论说本书不贴近实战是相反的。
  5. 书中还有专门的章节讲解在学术界、工业界面向对象方法的教育、培训和学习方法,读后具有很强的启发意义,能激起自己对教育方法的思考。
  6. 书中还提到,一些论文、书籍中一上来就给出了一个完整的类图结构,却没给出该类图结构是如何构造出来的。实际上,该类图是自下而上得到的,即在设计和实现类的过程中,优化调整得到的。

读完本书后,偶然找到了本书更好排版的版本,我决定抽时间再读一遍本书。