前言
本书内容概要
正如书名所述,本书阐述了面向对象的思考过程。选择一本书的主题和书名是很重要的,但如果主题的概念性很强的话,做决定就没那么容易了。大部分书籍都只涉及编程与面向对象设计的某个方面。一些流行的书则阐述了诸如面向对象分析、面向对象设计、面向对象编程、设计模式、面向对象的数据结构(XML)、统一建模语言(UML)、面向对象Web开发、面向对象移动开发、各种面向对象编程语言等与面向对象编程(OOP)相关的主题。
然而,许多人仔细研读这些书后,未曾注意到这些主题都建立在同一个基础之上,即如何以面向对象的方式进行思考。从学生到软件开发专业人员,他们往往只是阅读了这些书,却没有付出充分的时间和努力来真正理解代码背后的设计理念。
我认为仅学习一种特定的开发方式、一种编程语言或者一组设计工具并不能说明学会了面向对象这一概念。面向对象的软件开发简单来说就是一种思考方式。本书就是关于这种面向对象的思考过程的。
把面向对象的思考过程从语言、开发实践以及工具中剥离出来并不是一个简单的任务。人们在学习面向对象这一理念时,往往被要求先深入学习一门编程语言。例如,很多年以前,大量的C语言程序员在没有直接接触面向对象概念之前,就开始通过C++语言来了解面向对象。
学习面向对象的概念与学习使用面向对象语言进行编程有着巨大差异,理解这一点很重要。我在撰写本书第1版前就意识到了这一点。Craig Larman在“What the UML Is-and Isn’t”一文中指出:
不幸的是,在软件工程和UML图表语言上下文中,阅读和编写UML标记的技能有时等同于面向对象分析和设计的能力。当然,事实并非如此,而且后者远比前者重要。因此,我推荐寻找一些教学材料来学习使用面向对象分析和设计的知识技能,这优先于学习UML标记或者辅助工具。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access