对于刚接触编程的零基础人群来说,面向对象和非面向对象是个很模糊的问题。比如,我结果许多学生,他们的第一个问题通常不是问“什么是面向对象”,而是会问“面向对象和非面向对象那个好”。由于相对于面向过程编程来说,面向对象算是一个“新”概念。每当有一个新概念引入时,随之而来的还伴有鼓吹新概念好处的文章。同样,每一本介绍面向对象概念的书籍,都会说面向对象的概念是如何的好。相反,介绍C语言等面向过程的书,就显得很低调。另外,其他如函数式编程等,也仅仅在自己适用的那一亩三分地中宣传。
面向对象有席卷天下之势,但有一定经验的人都清楚,没有什么面向对象语言能做的,而面向过程做不了的。同时,Linux众由于使用C较多的缘故,依然坚持的面向过程。对面向对象的C++口诛笔伐。(抱歉,这里似乎混淆了面向过程Vs面向对象 与 C Vs C++的概念了,不过这里只是想说明一下问题。)
但是,事物的出现总是有其合理的一面。面向对象的概念的确能节省许多开发时间。正如书中所说“我们面临着在计算资源和人力资源有限的条件下创建复杂系统的任务。面向对象(OO)技术已经发展为管理许多不同种类的系统中内在复杂性的手段。对象模型已被证明是非常有力和统一的概念。”
不像其他书籍只着重介绍面向对象的某一部分的内容,而对其他部分一带而过。本书介绍全面介绍了面向对象的概念、方法和应用。对于学生,本书的读者最好有一定软件开发基础。对于已工作的人,本书可以提高读者分析和解决问题的能力。
我最先接触的面向对象的语言是Java。最开始学习Java的时候,书中开头在那强调面向对象多么多么好。然后举出著名的“软件危机”的例子。其实对于当时的我们,既没有接触面向过程,也没有接触过面向对象。懵懂的只知道一个“Hello World”的时候,面向对象仿佛是一件神秘的事。而本书针对初学者,回答了他们最想问的问题,那就是“什么是面向对象”、面向对象的好处。诚然,其中许多问题需要在实践中才能深层次的掌握。但当读者有一定开发经验时,本书可以让读者有“众里寻他千百度,那人却在灯火阑珊处”的感觉。
有朋友说本书像是一本大学里的教科书,读起来昏昏欲睡的。我看了下样章,的确,理论方面的内容比较多。不过磨刀不误砍柴工。如果能掌握面向对象理念的精髓,那么在实际中遇到了相似的问题,就知道如何选择相对最好的途径来解决。
书中的内容都是精华,若想对面向对象的概念和应用有深入了解的人,本书是相当重要的。其中的内容可以帮读者做到“事半功倍”。多说无益,好书就在那,大家可以去看看样章。这本书的排版看得很舒服,而且样章给的也很厚道,一百多页。足够让试读的人对全书有个大致的了解。最后说一句译者们的文笔也不错。
一家之言,如有不妥,还请见谅