本书的结构
本书大致分为“导引”“编程技术”“应用技术”“目标”“特别讲解”5 部分(请参考后文中的“本书中涉及的主要关键词”)。
导引(第 1、2、7 章)
第1、2、7章是导引。
第1章是全书的导引,在说明面向对象是软件开发的综合技术的同时,也将介绍人们认为该技术较难的原因。
第2章是本书前半部分的导引。这里为了防止大家对第 3 章之后介绍的编程技术的理解出现混乱,特别指出面向对象的结构和现实世界是似是而非的。
第7章是本书后半部分的导引。这一章将介绍面向对象包括“编程技术”和“归纳整理法”两个方面,综合考虑这两个方面,就容易把握面向对象的全貌了。
编程技术(第 3~6 章)
第3~6章将介绍编程技术,这是面向对象的核心。
第3章将回顾编程语言从机器语言到结构化语言的进化历史,并由此表明面向对象是在编程语言的发展历史中自然演变而来的,也是必然出现的。
第4章和第 5 章将讲解这部分的正题,即面向对象编程技术。
第4章将为大家介绍面向对象编程中最基本且最重要的结构——类、多态和继承,这些结构是提高软件可维护性和可重用性的有效技术。另外,这一章还将介绍许多面向对象编程语言中拥有的包、异常和垃圾回收机制等相关内容。
第5章将介绍使用面向对象编程语言编写的程序的运行机制,并通过大量插图重点介绍面向对象编程语言中典型的内存使用方法。
第6章将介绍面向对象编程语言的优良结构所带来的两项可重用技术:一项是软件本身的可重用,被称为类库、框架和组件的大规模可重用构件群就属于这部分内容;另一项是重用优秀思想的设计模式。在这些可重用技术中,类、多态和继承这 3 种结构会起到非常重要的作用,软件和思想的重用是相互促进、共同发展的。
应用技术(第 8~11 章)
第8~11章将介绍由编程引申出来的应用技术。
第8章将介绍统一建模语言(Unified Modeling Language,UML)。通过绘制 UML 图,我们能够将无形的软件结构和功能可视化。另外,即使是同一个图,在用于编程技术和归纳整理法时所表示的内容也会有很大不同。最后,我们还将介绍 UML 中与面向对象并无直接关系的用例图和活动图等。
第9章将介绍使用 UML 进行建模的相关内容。在这一章,我们首先确认计算机擅长的是“固定工作”和“记忆工作”。然后通过业务应用程序和嵌入式软件的例子,介绍在整理现实世界的工作并确定将哪些工作交给计算机处理时建模所起的重要作用。
第10章将介绍面向对象设计的思想和技术窍门。首先介绍提高软件可维护性和可重用性的 3 个目标,然后介绍用于实现这些目标的技术窍门,即将无生命的软件拟人化,并进行职责分配。
第11章将介绍敏捷开发方法。首先介绍瀑布式开发流程和迭代式开发流程的区别,然后介绍轻量级迭代式开发流程中具有代表性的极限编程(eXtreme Programming,XP)和 Scrum。根据敏捷开发宣言,它们被称为敏捷开发方法。最后介绍测试驱动开发(Test Driven Development,TDD)、重构和持续集成这 3 种敏捷开发实践。
目标(第 12 章)
第12章是全书的总结。这里将回顾面向对象的过去,展望它的未来,说明该技术不会昙花一现。另外,我们还将介绍面向对象不仅能让软件开发工作变轻松,而且还会激发技术人员的求知欲,是一门非常有趣的技术。
特别讲解(附章)
附章将介绍函数式语言的基本结构。除了面向对象之外,最近许多编程语言还增加了函数式语言的结构。函数式语言的基本结构和思想与传统编程语言存在很大的不同。在附章中,我们会对函数式语言和传统编程语言进行对比,并具体介绍函数式语言的 7 个特征。