本书以图配文的形式,直观易懂地详细介绍了面向对象的全貌及其中包含的各项技术,包括面向对象编程、框架、设计模式、UML、建模、面向对象设计和敏捷开发等。对于各项技术是如何使用的(How),书中只进行最小限度的说明,而重点介绍这些技术究竟是什么样的(What)以及为什么需要这些技术(Why)。另外,书中设有“编程往事”专栏,介绍了作者年轻时的一些经历;还设有“对象的另一面”专栏,以与正文不同的视角讲解面向对象这一概念普及的背景和原因,通俗有趣。 平泽章(作者)就职于UL System株式会社,多次参与面向大型金融机构的第三次在线系统的开发等系统开发工作,后负责技术咨询业务,2001年转为现在的职务。著有《UML建模教程》,是Working Effectively With Legacy Code、Refactoring: Improving the Design of Existing Code日文版译者之一。侯振龙(译者)管理科学与工程专业硕士,日语一级,软件开发工程师,具有十年以上对日软件开发经验,现就职于某日本独资企业。 第1章 面向对象:让软件开发变轻松的技术 1 1.1 面向对象是软件开发的综合技术 3 1.2 以对象为中心编写软件的开发方法 4 1.3 从编程语言演化为综合技术 4 1.4 在混乱的状态下去理解,就会觉得很难 5 1.5 混乱之一:术语洪流 6 1.6 混乱之二:比喻滥用 7 1.7 混乱之三:“一切都是对象”综合征 8 1.8 三种混乱增大了理解的难度 9 1.9 因为不理解,所以才感觉神秘 10 1.10 消除这三种混乱,就能看到面向对象的真面目 10 1.11 本书的构成 11 第2章 似是而非:面向对象与现实世界 13 2.1 如果只理解概念,就容易混乱 15 2.2 对照现实世界介绍面向对象 15 2.3 类指类型,实例指具体的物 16 2.4 多态让消息的发送方法通用 18 2.5 继承对共同点和不同点进行系统的分类和整理 20 2.6 面向对象和现实世界是似是而非的 22 2.7 现实世界的人和物不是由类创建的 23 2.8 现实世界的人和物并不只是根据消息来行动 24 2.9 明确定义为编程结构 25 2.10 软件并不会直接表示现实世界 25 2.11 与现实世界的相似扩大了可能性 26 专栏 对象的另一面 成为潮词的面向对象 27 第3章 理解OOP:编程语言的历史 29 3.1 OOP的出现具有必然性 31 3.2 最初使用机器语言编写程序 31 3.3 编程语言的第一步是汇编语言 32 3.4 高级语言的发明使程序更加接近人类 33 3.5 重视易懂性的结构化编程 34 3.6 提高子程序的独立性,强化可维护性 35 3.7 实现无GOTO编程的结构化语言 38 3.8 进化方向演变为重视可维护性和可重用性 39 3.9 没有解决全局变量问题和可重用性差的问题 41 专栏 编程往事 COBOL编译器的鸡和蛋的问题 45 第4章 面向对象编程技术:去除冗余、进行整理 47 4.1 OOP具有结构化语言所没有的三种结构 49 4.2 OOP的结构会根据编程语言的不同而略有差异 51 4.3 三大要素之一:类具有的三种功能 51 4.4 类的功能之一:汇总 52 4.5 类的功能之二:隐藏 55 4.6 类的功能之三:创建很多个 58 4.7 实例变量是限定访问范围的全局变量 61 4.8 三大要素之二:实现调用端公用化的多态 63 4.9 三大要素之三:去除类的重复定义的继承 67 4.10 对三大要素的总结 70 4.11 通过嵌入类型使程序员的工作变轻松 71 4.12 将类作为类型使用 72 4.13 编程语言“退化”了吗 74 4.14 更先进的OOP结构 74 4.15 进化的OOP结构之一:包 75 4.16 进化的OOP结构之二:异常 76 4.17 进化的OOP结构之三:垃圾回收 78 4.18 对OOP进化的总结 80 4.19 决心决定OOP的生死 81 第5章 理解内存结构:程序员的基本素养 83 5.1 理解OOP程序的运行机制 85 5.2 两种运行方式:编译器与解释器 85 5.3 解释、运行中间代码的虚拟机 88 5.4 CPU同时运行多个线程 89 5.5 使用静态区、堆区和栈区进行管理 91 5.6 OOP的特征在于内存的用法 94 5.7 每个类只加载一个类信息 95 5.8 每次创建实例都会使用堆区 96 5.9 在变量中存储实例的指针 97 5.10 复制存储实例的变量时要多加注意 99 5.11 多态让不同的类看起来一样 103 5.12 根据继承的信息类型的不同,内存配置也不同 105 5.13 孤立的实例由垃圾回收处理 107 专栏 编程往事 OOP中dump看起来很费劲? 113 第6章 重用:OOP带来的软件重用和思想重用 115 6.1 OOP的优秀结构能够促进重用 117 6.2 类库是OOP的软件构件群 119 6.3 标准类库是语言规范的一部分 120 6.4 将Object类作为祖先类的继承结构 121 6.5 框架存在各种含义 122 6.6 框架是应用程序的半成品 123 6.7 世界上可重用的软件构件群 124 6.8 独立性较高的构件:组件 125 6.9 设计模式是优秀的设计思想集 125 6.10 设计模式是类库探险的路标 128 6.11 扩展到各个领域的思想的重用 129 6.12 通过类库和模式发现的重用的好处 130 第7章 化为通用的归纳整理法的面向对象 133 7.1 软件不会直接表示现实世界 135 7.2 应用于集合论和职责分配 137 7.3 在上流工程中化为通用的归纳整理法 139 7.4 两种含义引起混乱 140 7.5 分为OOP的扩展和归纳整理法进行思考 141 7.6 为何化为了通用的归纳整理法 142 专栏 对象的另一面 语言在先,还是概念在先 143 第8章 UML:查看无形软件的工具 145 8.1 UML是表示软件功能和结构的图形的绘制方法 147 8.2 UML有13种图形 148 8.3 UML的使用方法大致分为三种 150 8.4 UML的使用方法之一:表示程序结构和动作 151 8.5 类图表示OOP程序的结构 151 8.6 使用时序图和通信图表示动作 154 8.7 UML的使用方法之二:表示归纳整理法的成果 156 8.8 使用类图表示根据集合论进行整理的结果 157 8.9 表示职责分配的时序图和通信图 160 8.10 UML的使用方法之三:表示非面向对象 163 8.11 使用用例图表示交给计算机的工作 163 8.12 使用活动图表示工作流程 164 8.13 使用
阅读更多