| 书[0名0]: | 面向对象的思考过程(原书[0第0]4版)|5007999 |
| 图书定价: | 69元 |
| 图书作者: | (美)马特·魏斯费尔德(Matt Weisfeld) |
| 出版社: | 机械工业出版社 |
| 出版日期: | 2016/11/1 0:00:00 |
| ISBN号: | 9787111553083 |
| 开本: | 16开 |
| 页数: | 0 |
| 版次: | 1-1 |
| 作者简介 |
| Matt Weisfeld居住于美[0国0]俄亥俄州的克利夫兰市。他既是[0大0][0学0]教授、软件开发工程师,也是作家。他在信息技术[0领0]域拥有20年的经验,之后进入[0大0][0学0]任教。他先后[0当0]过软件开发工程师、企业家以及兼职教授。Matt拥有计算机科[0学0]硕士[0学0]位以及工[0商0]管理硕士[0学0]位。Matt除了本书之外,Matt还撰写了其他两本关于软件开发的书籍,并在杂志和期刊上发表了多篇文章。这些杂志和期刊包括《developer.com》《Dr.Dobb’s》《C/C++ Users》《Software Development》《Java Report》和[0国0]际期刊《Project Management》等。 |
| 内容简介 |
| 本书是一部[0独0]具特色的面向对象技术著作。书中结合代码示例生动透彻地讲述了面向对象思想的精髓,让读者真正[0学0][0会0]以对象方式进行思考。本书共15章,在结构上可以分为两部分:[0第0]壹部分包括[0第0]1~10章,探讨面向对象的基本概念,比如封装、多态、继承等;[0第0]二部分包括[0第0]11~15章,专注于将这些概念应用于一些通用的面向对象技术中,并结合了一些实用的应用程序。 |
| 目录 |
译者序 作者简介 前言 [0第0]1章 面向对象的概念简介 1 1.1 基本概念 1 1.2 对象及遗留系统 2 1.3 过程式编程与面向对象编程 3 1.4 由面向过程开发过渡到面向对象开发 5 1.4.1 过程式编程 5 1.4.2 面向对象编程 6 1.5 究竟什么是对象 6 1.5.1 对象数据 6 1.5.2 对象行为 7 1.6 究竟什么是类 10 1.6.1 创建对象 10 1.6.2 属性 11 1.6.3 方[0法0] 11 1.6.4 消息 12 1.7 使用类图作为可视化工具 12 1.8 封装和数据隐藏 12 1.8.1 接口 13 1.8.2 实现 13 1.8.3 接口/实现范式的一个真实示例 14 1.8.4 接口/实现范式的模型 14 1.9 继承 15 1.9.1 [0超0]类和子类 16 1.9.2 抽象 16 1.9.3 is-a关系 17 1.10 多态 18 1.11 组合 21 1.11.1 抽象 21 1.11.2 has-a关系 21 1.12 结语 21 1.13 本章中使用的示例代码 22 1.13.1 C#.NET版本的TestPerson类 22 1.13.2 C#.NET版本的TestShape类 23 [0第0]2章 如何以面向对象的方式进行思考 25 2.1 清楚接口和实现之间的区别 26 2.1.1 接口 27 2.1.2 实现 27 2.1.3 一个接口/实现示例 28 2.2 使用抽象思维设计接口 31 2.3 尽可能提供小化的用户接口 32 2.3.1 确定用户 33 2.3.2 对象行为 33 2.3.3 环境约束 34 2.3.4 识别公共接口 34 2.3.5 识别实现 34 2.4 结语 35 2.5 引用 35 [0第0]3章 高级的面向对象概念 36 3.1 构造函数 36 3.1.1 什么是构造函数调用 37 3.1.2 构造函数中包含什么 37 3.1.3 默认构造函数 37 3.1.4 使用多个构造函数 38 3.1.5 设计构造函数 41 3.2 错误处理 41 3.2.1 忽略问题 42 3.2.2 检查问题并中止应用程序 42 3.2.3 检查问题并试图恢复 42 3.2.4 抛出异常 43 3.3 作用域的重要性 45 3.3.1 局部属性 45 3.3.2 对象属性 46 3.3.3 类属性 48 3.4 操作符重载 49 3.5 多重继承 49 3.6 对象操作 50 3.7 结语 51 3.8 引用 51 3.9 本章中使用的示例代码 51 [0第0]4章 类的剖析 53 4.1 类[0名0] 53 4.2 注释 55 4.3 属性 55 4.4 构造函数 56 4.5 访问器 58 4.6 公共接口方[0法0] 60 4.7 私有实现方[0法0] 60 4.8 结语 61 4.9 引用 61 4.10 本章中使用的示例代码 61 [0第0]5章 类设计指导 63 5.1 对现实世界系统建模 63 5.2 识别公共接口 64 5.2.1 小化公共接口 64 5.2.2 隐藏实现 65 5.3 设计健壮的构造函数(以及析构函数) 65 5.4 在类中设计错误处理 66 5.4.1 使用注释给类加上文档 66 5.4.2 构造可以合作的对象 67 5.5 设计时请考虑重用 67 5.6 设计时请考虑扩展性 67 5.6.1 使用描述性的[0名0]称 67 5.6.2 抽象不可移植的代码 68 5.6.3 提供一种方式来复制和比较对象 68 5.6.4 保持尽可能小的作用域 69 5.6.5 类的职责与自身高度相关 70 5.7 设计时请考虑可维护性 71 5.7.1 在开发过程中使用迭代 71 5.7.2 测试接口 72 5.8 使用对象持久化 73 5.9 结语 75 5.10 引用 75 5.11 本章中使用的示例代码 75 [0第0]6章 使用对象进行设计 77 6.1 设计指导 77 6.1.1 提供正确的分析 79 6.1.2 编写工作陈述文档 80 6.1.3 收集需求 80 6.1.4 开发用户接口的原型 81 6.1.5 识别类 81 6.1.6 确定每个类的职责 81 6.1.7 确定类之间如何协作 81 6.1.8 创建类模型来描述系统 81 6.1.9 建立用户接口原型 82 6.2 对象包装 82 6.2.1 结构化代码 83 6.2.2 包装结构化代码 84 6.2.3 包装不可移植的代码 85 6.2.4 包装已有类 86 6.3 结语 87 6.4 引用 87 [0第0]7章 精通继承和组合 88 7.1 重用对象 88 7.2 继承 89 7.2.1 通用和特例 91 7.2.2 设计决策 92 7.3 组合 93 7.4 为什么封装是面向对象的本质 95 7.4.1 继承如何减弱封装 96 7.4.2 关于多态的一个具体例子 97 7.4.3 对象职责 98 7.4.4 抽象类、虚方[0法0]和协议 101 7.5 结语 102 7.6 引用 103 7.7 本章中使用的示例代码 103 [0第0]8章 框架和重用:使用接口和抽象类进行设计 105 8.1 代码:重用还是不重用 105 8.2 什么是框架 106 8.3 什么是契约 107 8.3.1 抽象类 108 8.3.2 接口 110 8.3.3 综合运用 112 8.3.4 编译器佐证 114 8.3.5 创建契约 115 8.3.6 系统插接点 117 8.4 一个电子[0商0]务示例 117 8.4.1 一个电子[0商0]务问题 117 8.4.2 非重用方式 118 8.4.3 电子[0商0]务解决方案 119 8.4.4 UML对象模型 120 8.5 结语 124 8.6 引用 124 8.7 本章中使用的示例代码 124 [0第0]9章 创建对象及面向对象设计 128 9.1 组合关系 129 9.2 分阶段构建 129 9.3 组合类型 131 9.3.1 聚合 131 9.3.2 联合 132 9.3.3 同时使用联合和聚合 133 9.4 避免依赖 133 9.5 基数 134 9.5.1 多个对象联合 136 9.5.2 可选的联合 137 9.6 一个综合性示例 137 9.7 结语 138 9.8 引用 138 [0第0]10章 创建对象模型 139 10.1 什么是UML 139 10.2 类图结构 140 10.3 属性和方[0法0] 141 10.3.1 属性 142 10.3.2 方[0法0] 142 10.4 访问符号 142 10.5 继承 143 10.6 接口 145 10.7 组合 145 10.7.1 聚合 145 10.7.2 联合 146 10.8 基数 147 10.9 结语 148 10.10 引用 149 [0第0]11章 对象与可移植数据:XML和JSON 150 11.1 可移植数据 150 11.2 XML 152 11.3 XML与HTML 152 11.4 XML和面向对象的语言 153 11.5 在企业间共享数据 154 11.6 使用DTD验证文档 155 11.7 将DTD集成到XML文档中 156 11.8 使用层叠样式表 161 11.9 对象标记 163 11.10 结语 167 11.11 引用 167 [0第0]12章 持久化对象:序列化、封送及关系型数据库 168 12.1 持久化对象基础 168 12.2 将对象保存到平面文件中 169 12.2.1 序列化文件 170 12.2.2 再次讨论实现和接口 172 12.2.3 为什么不保存方[0法0] 173 12.3 序列化过程中使用XML 173 12.4 写入关系型数据库 176 12.5 结语 179 12.6 引用 179 12.7 本章中使用的示例代码 179 [0第0]13章 Web服务、移动应用及混合应用中的对象 183 13.1 分布式计算的演进 183 13.2 基于对象的脚本语言 184 13.3 验证示例 186 13.4 网页中的对象 189 13.4.1 对象 189 13.4.2 网页控制器 191 13.4.3 声音播放器 192 13.4.4 电影播放器 192 13.4.5 Flash动画 193 13.5 分布式对象及企业 193 13.5.1 公共对象请求代理体系结构 195 13.5.2 Web服务的定义 197 13.5.3 Web服务代码 201 13.5.4 表征状态转移 202 13.6 结语 203 13.7 引用 203 [0第0]14章 对象及客户端/服务器端应用程序 204 14.1 客户端/服务器端方式 204 14.2 私有方式 205 14.2.1 序列化对象代码 205 14.2.2 客户端代码 206 14.2.3 服务器端代码 208 14.2.4 运行该私有的客户端/服务器端示例 209 14.3 非私有方式 210 14.3.1 对象定义代码 211 14.3.2 客户端代码 212 14.3.3 服务器端代码 213 14.3.4 运行非私有客户端/服务器端示例 215 14.4 结语 215 14.5 引用 216 14.6 本章中使用的示例代码 216 [0第0]15章 设计模式 217 15.1 为什么使用设计模式 218 15.2 Sm[0all0]talk的模型/视图/控制器 219 15.3 设计模式类型 220 15.3.1 创建型模式 220 15.3.2 结构型模式 224 15.3.3 行为型模式 227 15.4 反模式 228 15.5 结语 229 15.6 引用 229 15.7 本章中使用的示例代码 229 |
《面向对象的思考过程》(原书第4版)这本书,给我的感觉就像是给我装备了一副“光学放大镜”,让我能够更清晰地洞察代码背后的逻辑和结构。我之前尝试过一些其他的面向对象书籍,但总觉得它们要么太理论化,要么就陷在具体的语法细节里,无法触及面向对象设计的精髓。《面向对象的思考过程》则不同,它以一种非常“接地气”的方式,将那些抽象的概念变得生动形象。它通过不断地类比和反思,引导读者去理解“是什么”,以及“为什么”。我印象特别深刻的是,作者在讲解“继承”和“多态”时,不仅仅是列举代码例子,而是深入分析了它们在不同场景下的适用性和优缺点,让我真正理解了为什么我们需要这些设计原则。读这本书,我感觉自己像是在参加一场高水平的设计研讨会,每一次翻页,都能学到新的东西,每一次思考,都能让我的理解更上一层楼。它让我不再害怕面对复杂的系统,而是能更有信心地去分析和改造它们。
评分这本书绝对是计算机科学领域的一股清流!我一直对编程抱有热情,但总感觉自己的思维方式有些碎片化,遇到复杂问题时,常常是“头痛医头,脚痛医脚”,缺乏一个系统性的解决框架。当我看到《面向对象的思考过程》(原书第4版)时,内心涌起一股强烈的期待。这本书并没有直接教你“如何写一段代码”,而是深入探讨了“如何思考”。它就像一把钥匙,为我打开了通往对象导向世界的大门。通过生动的案例和循序渐进的讲解,我逐渐理解了“对象”、“类”、“封装”、“继承”、“多态”这些概念背后的哲学思想。不再是枯燥的术语堆砌,而是通过一个个鲜活的例子,比如模拟现实世界中的各种事物,让我体会到面向对象是如何帮助我们更清晰、更高效地组织和管理复杂系统的。尤其令我印象深刻的是,作者强调的“关注点分离”原则,这不仅在软件开发中有指导意义,甚至在日常生活中,也让我学会了如何将大问题分解成小模块,各个击破,从而大大提高了解决问题的效率。这本书的价值远不止于技术层面,它对我的思维方式产生了深远的影响,让我学会用一种更结构化、更模块化的方式来观察和处理问题。
评分老实说,最初接触这本书的时候,我还是个对计算机世界一知半解的新手,很多概念都像天书一样。网络上的教程虽然多,但往往是零散的,缺乏连贯性和深度。《面向对象的思考过程》(原书第4版)恰恰弥补了这一点。它不像一些入门书籍那样,上来就抛出一堆代码,而是从更宏观的视角,带你领略面向对象设计的魅力。我记得其中一个章节,通过对一个简单场景的反复建模和演进,生动地展示了面向对象如何从最初的混乱到最终的优雅。作者非常善于引导读者思考,提出问题,然后一步步地给出答案,让我有种“顿悟”的感觉。特别是关于“接口”和“抽象”的讲解,更是让我醍醐灌顶。我过去写代码时,常常会陷入“复制代码”、“拼凑功能”的陷阱,而这本书让我明白,好的设计是能够适应变化,并且易于扩展的。它教会了我如何站在更高的维度去看待代码,如何去设计那些能够长久运行、并且能够被他人轻易理解和维护的系统。读完这本书,我感觉自己不再是那个只会写“指令”的机器,而是真正理解了“创造”的乐趣和力量。
评分这本书简直是为那些想要在计算机领域有所建树,但又被“理论”和“实践”割裂所困扰的读者量身定做的。在我看来,很多技术书籍都侧重于“怎么做”,而《面向对象的思考过程》(原书第4版)则更侧重于“为什么这么做”。它并没有回避面向对象设计中的一些挑战和难点,而是用非常坦诚的态度,将它们一一剖析。我特别喜欢书中关于“模块化”和“可重用性”的探讨,这让我想起了我在工作中遇到的各种“遗留系统”。很多时候,我们不得不花费大量时间和精力去理解和修改那些难以维护的代码,而这本书让我明白了,如果当初采用了良好的面向对象设计,很多问题都可以避免。书中举例的那些“反模式”,更是让我受益匪浅,让我知道应该警惕哪些容易犯的错误。总的来说,它提供了一种“高级”的学习路径,不仅仅是知识的积累,更是思维模式的重塑。它让我明白,学习编程不仅仅是学习一门语言,更是学习一种解决问题的哲学。
评分对于任何一个想要深入理解计算机科学核心思想的人来说,《面向对象的思考过程》(原书第4版)都是一本不容错过的宝藏。这本书给我带来的最大改变,是从一个“代码执行者”转变为一个“系统设计者”。它没有直接教授你如何去写一个高效的算法,但它教会了我如何去设计一个能够支撑复杂算法的良好结构。我之前常常陷入“实现细节”的泥潭,而这本书让我学会了如何跳出这些细节,从更高的层面去思考问题的本质。它关于“接口隔离原则”和“依赖倒置原则”的讲解,让我明白了如何构建松耦合、易于测试和维护的系统。这些原则听起来可能有些“高冷”,但作者通过大量贴近实际的例子,将它们变得触手可及。读完这本书,我感觉自己的编程视野得到了极大的拓展,不再局限于单一语言或框架,而是能够理解更普适的设计思想,这对于我未来在更广阔的技术领域进行探索,打下了坚实的基础。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有