面向对象的思考过程

出版时间:2004-8  出版社:中国水利水电出版社  作者:韦森菲尔德  页数:196  译者:尹清辽,杨会珍  
Tag标签:无  

内容概要

  面向对象的程序设计(OOP)是现代程序设计语言的基本概念,《面向对象的思考过程》深入探讨了如何以面向对象的方式来进行思考。全书共分为15章,内容包括:面向对象的基本概念,如何以对象的方式进行思考,高级的面向对象概念,类的剖析,类设计,继承和组合,框架和重用,创建对象,使用UML创建对象模型,持久对象,可移植的数据,分布式对象和企业,设计模式等。  《面向对象的思考过程》是当代程序员的基础理论读物,适合于大学本科计算机专业的学生以及想要学习面向对象技术的程序员。

作者简介

作者:(美国)韦森菲尔德(Matt Weisfeld) 译者:杨会珍 尹清辽Matt Weisfeld是俄亥俄州Cleveland市Cuyahoga Community College(Tri-C)的助理教授。Matt是信息技术系的教员,讲授C++、Java和C#.NET之类的程序设计语言。在Tri-C任职之前,Matt在信息技术行业工作了20年,获得了软件开发、项目管理、业务拓展、公司培训以及兼职教学方面的经验。Matt获得了计算机科学的硕士学位以及项目管理的MBA。除了《面向对象的思考过程》第一版,Matt还出版了其他两本计算机图书,并且在Dr.Dobb’s Journal、The C/C++ Users Journal、Software Development Magazine、Java Report之类的杂志和期刊以及国际期刊Project Management上发表过许多文章。Matt曾出席美国和加拿大的各种会议。

书籍目录

译者序 前言 致谢 第1章 面向对象的概念简介 1.1 面向过程程序设计和OO程序设计1.2 从面向过程开发转向面向对象开发1.2.1 面向过程的程序设计1.2.2 OO程序设计1.3 对象的确切定义1.3.1 对象数据1.3.2 对象行为1.4 类的确切定义1.4.1 类是对象模板1.4.2 属性1.4.3 方法1.4.4 消息1.5 使用UML构建类图1.6 封装1.6.1 接口1.6.2 实现1.6.3 接口/实现范例的现实例子1.6.4 接口/实现范例的Java例子1.7 继承1.7.1 超类和子类1.7.2 抽象1.7.3 Is-a关系1.8 多态1.9 组合1.10 小结 第2章 如何以对象的方式进行思考 2.1 了解接口和实现的区别2.1.1 接口2.1.2 实现2.1.3 接口/实现的例子2.2 在设计接口时使用抽象的思想2.3 尽可能向用户提供最少的接口2.3.1 确定用户2.3.2 对象行为2.3.3 环境限制2.3.4 确定公共接口2.3.5 确定实现2.4 小结2.5 参考文献 第3章 高级的面向对象概念 3.1 构造函数3.1.1 何时调用构造函数3.1.2 构造函数的内部机理3.1.3 默认构造函数3.1.4 使用多个构造函数3.1.5 设计构造函数3.2 错误处理3.2.1 忽略问题3.2.2 检测问题并异常终止应用程序3.2.3 检测问题并且尝试解决问题3.2.4 抛出异常3.3 作用域的概念3.3.1 局部属性3.3.2 对象属性3.3.3 类的属性3.4 运算符重载3.5 多重继承3.6 对象操作3.7 小结3.8 参考文献 第4章 类的剖析 4.1 类的名称4.2 注释4.3 属性4.4 构造函数4.5 访问函数4.6 公共接口方法4.7 私有实现方法4.8 小结4.9 参考文献 第5章 类设计指导 5.1 标识公共接口5.2 设计健壮的构造函数(或析构函数)5.3 在类中设计错误处理5.3.1 用文档说明类以及使用注释5.3.2 带着协作的意向创建对象5.4 在设计时考虑到重用5.5 设计时考虑扩展5.5.1 使名称形象化5.5.2 提取不能移植的代码5.5.3 提供复制和比较对象的方法5.5.4 尽可能使作用域最小5.5.5 类应该对自己负责5.6 在设计时考虑可维护性5.6.1 使用迭代5.6.2 测试接口5.7 使用对象持久性5.8 小结5.9 参考文献 第6章 使用对象进行设计 6.1 设计指导6.1.1 进行正确的分析6.1.2 制作工作陈述6.1.3 收集需求6.1.4 开发用户接口原型6.1.5 确定类6.1.6 确定每一个类的职责6.1.7 确定类和类之间如何相互作用6.1.8 创建类模型来描述系统6.2 案例分析:Blackjack(扑克牌中的二十一点)例子6.2.1 使用CRC卡片6.2.2 确定Blackjack的类6.2.3 确定类的职责6.2.4 UML用例:确定协作6.2.5 制作CRC卡片的第一步6.2.6 UML类图:对象模型6.2.7 为用户接口设计原型6.3 小结6.4 参考文献 第7章 掌握继承和组合 7.1 继承7.1.1 泛化和特化7.1.2 设计决策7.2 组合7.3 为什么封装对OO很重要7.3.1 继承是如何削弱封装的7.3.2 一个详细的多态例子7.3.3 对象的职责7.4 小结7.5 参考文献 第8章 框架的重用:利用接口和抽象类进行设计 8.1 代码的重用8.2 什么是框架8.3 什么是契约8.3.1 抽象类8.3.2 接口8.3.3 尝试一起使用它们8.3.4 编译器证据8.3.5 制定契约8.3.6 系统插入点8.4 一个电子商务的例子8.4.1 电子商务的问题8.4.2 非重用方法8.4.3 电子商务解决方案8.4.4 UML对象模型8.5 小结8.6 参考文献 第9章 创建对象 9.1 组合关系9.2 协调地创建9.3 组合的类型9.3.1 聚合9.3.2 关联9.3.3 同时使用聚合和关联9.4 避免依赖性9.5 基数(Cardinality)9.5.1 多个对象的关联9.5.2 可选的关联9.6 同时使用这些关系:一个例子9.7 小结9.8 参考文献 第10章 使用UML创建对象模型 10.1 什么是UML10.2 类图的结构10.3 属性和方法10.3.1 属性10.3.2 方法10.4 访问标号10.5 继承10.6 接口10.7 组合10.7.1 聚合10.7.2 关联10.8 基数10.9 小结10.10 参考文献 第11章 持久对象:串行化和关系数据库 11.1 持久对象的基础11.2 把对象保存到“扁平”文件中11.2.1 串行化某个文件11.2.2 回顾实现和接口11.3 写入关系数据库中11.4 加载驱动程序11.4.1 建立连接11.4.2 SQL语句11.5 小结11.6 参考文献 第12章 对象和XML:可移植的数据 12.1 可移植代码12.2 可扩展标记语言(XML)12.3 XML与HTML12.4 XML和面向对象语言12.5 在两个公司之间共享数据12.6 用文档类型定义检验文档12.7 用DTD集成到XML文档中12.8 使用层叠式样式表12.9 小结12.10 参考文献 第13章 对象和Internet 13.1 基于对象的脚本编写语言13.2 一个JavaScript验证的例子13.3 JavaApplets是对象13.4 JavaBeans是对象13.5 小结13.6 参考文献 第14章 公布式对象和企业 14.1 公共对象请求代理体系结构(CORBA)14.2 Java的远程方法调用(RMI)14.3 Java的Enterprise JavaBeans14.4 企业JavaBeans的类型14.4.1 会话beans14.4.2 实体beans14.5 小结14.6 参考文献 第15章 设计模式 15.1 为什么需要设计模式15.2 Smalltalk的模型/视图/控制器15.3 设计模式的类型15.3.1 创建模式15.3.2 结构模式15.3.3 行为模式15.4 反模式15.5 小结15.6 参考文献

媒体关注与评论

本书为那些希望掌握现代应用程序开发工具(包括Java和.NET)的程序员提供了面向对象概念的全面介绍。面向对象的程序设计是现代程序设计语言(包括C++、Java、c#和Visual Basic.NET)的基本概念,通过将代码指令看做对象而不是命令,OOP允许各个代码对象从其他对象继承属性。OOP提倡代码可移植性和重用,但是需要完全理解思考方式的转变。在跨入面向对象的程序设计语言领域之前,必须首先掌握面向对象的思考过程。本书针对的是想要学习面向对象技术的程序员,或者是只想了解他们所处理的是哪种问题的管理人员。本书为面向对象程序设计提供了一种面向解决方案的方法,介绍了面向对象的设计以及对象的继承或者组合、对象聚合和关联、接口和实现之间的区别。这个修改之后的版本包括更多的例子以及一些新的章节,这些章节解释了对象如何与.NET、XML、Java、数据库和Web服务相关联。“对于任何想要创建高质量软件的程序员来说(所有程序员都应当如此),不管他们已熟悉还是不太熟悉所谓的对象和类。他们都必须7解其各式各样的微妙之处。而要想这么做,就必须详细研究诸如Matt Weisfeld所著的“面向对象的思考过程”之类的图书。”  ——Bm McCaIrtv,《Java Distributed Objects》和《Object-Oriented Design in Java》的作者。“本书以浅显易懂的方式介绍与Object Technology有关的功能强大的概念。它是参与软件工程的人员所必备的图书。”  ——Wolfgang Haerle,博士,总裁,MaJul Enterprises,Inc.

图书封面

图书标签Tags

评论、评分、阅读与下载


    面向对象的思考过程 PDF格式下载


用户评论 (总计13条)

 
 

  •   书看起来是正版,快递服务很好。不错,还会继续合作
  •   编程思想很重要
  •   原版印刷,非常不错,内容也很实用。
  •   非常好的一本书, 从中学到很多思想!
  •   怎么一回事?
  •   这是本教材
  •   书比较实用,送货及时,宅急送送的,包装比较好
  •   很不错的书,内含 很多图示,主要是UML 图,不过比较通俗
  •   引导读者进行面向对象的思想,十分好OO的入门书籍,对直接如何编程的内容并不多,使得可以不关注鱼细节而在更广更广的方式上思考十分喜欢
  •   刚学OO,最重要是掌握OO思想、OOD,然后才是OOP,所以先选了这本书作为入门。
  •     我看的是英文版,这是我在英文版下的评论,在这儿再复制一下~~
      这本书是我在Kindle上看的第一本书~~,买了Kindle后将上个世纪出版的一些OO著作都download下来了,准备好好补充一下OO的基础知识。刚看完OO启思录,然后看这本比较薄,然后就开始看这本。现在还没看完,不过有些话想说说。
        
        这本书名为面向对象的思考过程,作者是提出了很多思考的方法,比如如何进行封装,比如如何做到复用程度高,要想更好的复用,就要提取更抽象的接口,接口越“抽象”(当然,这里不是指的abstract关键字),复用程度就越高,越具体复用程度就越低,这个看法我是认同的,但是作者稍候举了一个例子,我却觉得这个例子举的不太合适:
        开发一个计程车对象,如果你提供一个“去机场”的接口将要比“向左转,向右转”等接口有更好的复用性,因为“去机场”这个接口更抽象。
        我之所以说这个示例不合适,是因为这又涉及接口的粒度的问题,相比“去机场”而言,“向左转,向右转”粒度更细,更细的接口一般复用程度更高。
        
        还有,作者在第一章一直强调封装的重要性,要做到数据隐藏,我们就要少暴露对象的内部信息。但是作者的代码示例却是getter和setter,难道以一个public的getter和setter封装对数据的访问就是所谓的封装么?我并不这样认为。我写了一篇博客讨论这个问题:http://www.cnblogs.com/yuyijq/archive/2010/11/09/1872251.html
        随意的使用getter和setter并不能达到封装的目的,仅仅是为了遮人耳目而已。
        
        总体上来说,本书的思维讨论过程还是好的,但是示例却不怎么样,先就谈论这么多吧,继续阅读。
  •     你正准备学一门面向对象的编程语言?
         等等... 你知道什么是面向对象吗?
         听说过?.. 那你知道面向对象有三个基本要素吗?
         不清楚?... 那赶紧读一读这本书吧!...
        
         它如此的简单易读,却让你建立起最基本但最准确的面向对象的思想.. 强烈推荐!!!!
  •   是本好书 强烈推荐 内容幽默 通俗易懂
    感谢作者的女儿和猫让我看到这么优秀的面向对象书
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7