![面向对象的思考过程(原书第5版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/429/39980429/b_39980429.jpg)
译者序
我从2005年开始接触编程,还依稀记得当初在学校的计算机科学协会办公室,师兄用类比的方法给我讲述面向对象的概念。而本书诞生的时间更早,至今已是第5版,这更说明在编程的道路上面向对象的思考方式经久不衰,面向对象编程是每个软件工程师都必须熟练掌握的技能。
在学习一门语言时,如果过度关心它的语法细节,而不求理解其背后的设计理念,那么很难编写出优雅的代码,也无法驾驭复杂的场景。面向对象的思考过程是一个非常优秀的设计理念,它独立于编程语言而存在。
本书透彻地阐述了面向对象这一概念。作者在书中反复强调了学习面向对象的思考过程优于学习任何编程语言或工具。事实上,他也是这么做的。作者阐述了面向对象的三要素:继承、封装、多态性,并且自己加上了第四个要素:组合。关于组合,作者不惜笔墨做了大量的讲解,并且列举了很多通俗易懂的例子,这也是本书的一大特色。
我拥有多年的从业经验,对函数式编程和面向对象编程都有所涉猎。随着时间的推移,我越发觉得,虽然函数式编程的拥趸越来越多,但并不意味着面向对象的编程范式就落伍了。首先,面向对象的思考过程更加符合大家对世界的直观感受,毕竟不是每个人都是数学家。函数式编程可以简化很多问题,但它并不能简化所有问题。其次,面向对象编程范式和函数式编程范式并不是完全对立的,正如作者所讲,面向过程编程范式和面向对象编程范式也不是完全对立的。比如目前流行的一些语言(Scala、Go等)都具备函数式的特点,也兼具面向对象的特点(只不过它们的面向对象的机制与传统的方式有所不同)。所以无论你喜欢哪种编程范式,了解它们的不同之处是至关重要的。而本书则是了解面向对象范式的优秀书籍。
本书已经更新到了第5版。在本版中,作者对内容做了不少修改。他删除了一些与面向对象不太相关的章节,突出了本书的主题,同时引入了设计模式、面向对象设计的SOLID准则等全新章节,补全了面向对象设计思想的方方面面。
无论你是否有面向对象编程的经验,本书都适合作为你面向对象思考的旅程的开端。最后,希望本书能给你带来超凡的阅读体验。