您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
联系客服
|
搜索
热搜:
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
面向对象的思考过程
装帧: 平装
出版社: 机械工业出版社
作者: (美)马特·魏斯费尔德(Matt Weisfeld) 著;黄博文 译
出版日期: 2016-11-01
商品条码: 9787111553083
版次: 1
开本: 16开
页数: 233
出版年份: 2016
定价:
¥69
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
收藏
上架到店铺
×
Close
上架到店铺
{{shop.name}}
点此去绑定店铺
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥22.05
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书是一部独具特色的面向对象技术著作。书中结合代码示例生动透彻地讲述了面向对象思想的精髓,让读者真正学会以对象方式进行思考。本书共15章,在结构上可以分为两部分:靠前部分包括靠前~10章,探讨面向对象的基本概念,比如封装、多态、继承等;第二部分包括靠前1~15章,专注于将这些概念应用于一些通用的面向对象技术中,并结合了一些实用的应用程序。
作者简介
马特·魏斯费尔德(Matt Weisfeld)居住于美国俄亥俄州的克利夫兰市。他既是大学教授、软件开发工程师,也是作家。他在信息技术领域拥有20年的经验,之后进入大学任教。他先后当过软件开发工程师、企业家以及兼职教授。Matt拥有计算机科学硕士学位以及工商管理硕士学位。Matt除了本书之外,Matt还撰写了其他两本关于软件开发的书籍,并在杂志和期刊上发表了多篇文章。这些杂志和期刊包括《developer.com》《Dr.Dobb’s》《C/C++ Users》《Software Development》《Java Report》和靠前期刊《Project Management》等。
目录
译者序
作者简介
前言
第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方法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超类和子类16
1.9.2抽象16
1.9.3is—a关系17
1.10多态18
1.11组合21
1.11.1抽象21
1.11.2has—a关系21
1.12结语21
1.13本章中使用的示例代码22
1.13.1C#.NET版本的TestPerson类22
1.13.2C#.NET版本的TestShape类23
第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
第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
第4章类的剖析53
4.1类名53
4.2注释55
4.3属性55
4.4构造函数56
4.5访问器58
4.6公共接口方法60
4.7私有实现方法60
4.8结语61
4.9引用61
4.10本章中使用的示例代码61
第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使用描述性的名称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
第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
第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抽象类、虚方法和协议101
7.5结语102
7.6引用103
7.7本章中使用的示例代码103
第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一个电子商务示例117
8.4.1一个电子商务问题117
8.4.2非重用方式118
8.4.3电子商务解决方案119
8.4.4UML对象模型120
8.5结语124
8.6引用124
8.7本章中使用的示例代码124
第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
第10章创建对象模型139
10.1什么是UML139
10.2类图结构140
10.3属性和方法141
10.3.1属性142
10.3.2方法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
第11章对象与可移植数据:XML和JSON150
11.1可移植数据150
11.2XML152
11.3XML与HTML152
11.4XML和面向对象的语言153
11.5在企业间共享数据154
11.6使用DTD验证文档155
11.7将DTD集成到XML文档中156
11.8使用层叠样式表161
11.9JavaScript对象标记163
11.10结语167
11.11引用167
第12章持久化对象:序列化、封送及关系型数据库168
12.1持久化对象基础168
12.2将对象保存到平面文件中169
12.2.1序列化文件170
12.2.2再次讨论实现和接口172
12.2.3为什么不保存方法173
12.3序列化过程中使用XML173
12.4写入关系型数据库176
12.5结语179
12.6引用179
12.7本章中使用的示例代码179
第13章Web服务、移动应用及混合应用中的对象183
……
第14章对象及客户端/服务器端应用程序204
第15章设计模式217
摘要
前 言?Preface本书内容概要正如书名所述,本书讲述了面向对象思考的过程。选择一本书的主题和书名是个很重要的决定,但如果主题概念性很强,决定就没那么容易了。大部分书籍都只涉及了编程及面向对象设计的某个方面。一些主流的书阐述了诸如面向对象分析、面向对象设计、面向对象编程、设计模式、面向对象的数据结构(XML)、统一建模语言(UML)、面向对象Web开发、面向对象移动开发、进阶面向对象编程语言等主题,当然也包括了其他与面向对象编程相关的主题。
然而,许多人仔细研究这些书后,都未曾注意到这些主题都建立在同一个基础之上,即如何以面向对象的方式进行思考。从学生到软件开发专业人员,往往虽然阅读了这些书,但没有花费充分的时间和精力来真正理解代码背后的设计理念。
我认为仅学习一种特定的开发方法、一种编程语言或者一组设计工具并不能说明学会了面向对象这一概念。简单来说,以面向对象方式编程就是一种思考方式。本书就讨论这种面向对象的思考过程。
把面向对象的思考过程从语言、开发实践以及工具中剥离出来并不是一个简单的任务。在学习面向对象这一理念时,往往要求先深入学习一门编程语言。例如,很多年以前,大量的C语言程序员在没有直接接触面向对象概念之前,就开始通过C++语言来了解面向对象。其他软件专家第一次接触面向对象则是在演示文稿中使用UML创建对象模型。他们也没有直接学习面向对象的概念。即使到现在,互联网作为商业平台的几十年后,编程书籍以及专业的培训材料并没有先介绍面向对象这一概念。
学习面向对象的概念与学习使用面向对象语言进行编程有着巨大差异,理解这点很重要。我在编写本书第1版前就意识到了这点。当我阅读Craig Larman的文章《What the UML Is-and Isn’t》时,他指出:
但是,在软件开发工程和UML绘图语言领域,读写UML标记的能力有时候好像等同于面向对象的分析和设计能力。事实当然并非如此,后者比前者更加重要。因此我推荐先学习面向对象分析和设计的相关教学资料,它优先于学习使用UML标记的相关工具。
因此,尽管学习一门建模语言是非常重要的步骤,但先学习面向对象的技能更加重要。如果未完全理解面向对象概念前就学习UML,这就像还未了解任何与电路相关的知识就开始学习电路图一样。
学习编程语言也有相同的问题。如前所述,很多C语言程序员还未直接了解任何面向对象的概念,就想通过使用C++语言来达到面向对象的境界。在面试中经常会出现这样的情况,很多自诩C++程序员的开发人员只是会使用C++编译器的C程序员。甚至现在,诸如C#.NET、VB.NET、Objective-C以及Java等语言已经相当普及了,工作面试中的一些关键问题可以迅速暴露出这些程序员缺乏面向对象的思想。
Visual Basic的早期版本并不是面向对象的。C语言也不是面向对象的。而C++在设计时就向后兼容C语言。因此,使用C++编译器编写只含C语言语法的程序,而放弃使用C++的面向对象功能是完全可能的。Objective-C是标准ANSI C语言的一个扩展。更糟糕的是,程序员可能使用勉强够用的面向对象功能把程序写成了既不是面向对象的也不是面向过程的四不像产品。
因此,在学习使用面向对象的开发环境之前,先学习基本的面向对象概念至关重要。与其直接学习一门编程语言(比如Objective-C、VB .NET、C++、C# .NET或Java)或建模语言(如UML),还不如把时间花在学习面向对象的思考过程上。
我在使用C语言编程很多年后,于20世纪80年代后期开始参加Smalltalk语言的学习课程。当时我所在的公司认为公司的软件开发人员应该学习这个极具前途的技术。老师授课时说面向对象的范式是全新的思维方式(事实上它从20世纪60年代就已经萌芽了)。他接着说,虽然几乎我们所有人都是很优秀的程序员,但还有10%~20%的人从来没有按照面向对象的方式做事。如果该说法确实正确,那么很可能是因为很多优秀的程序员从没有花时间进行编程范式的转变,没有深入学习面向对象概念。
第4版中的新增内容正如在前言中经常提及的一样,第1版中我的愿景仅仅围绕概念本身,而不是具体的新兴技术。尽管我在第2版、第3版以及第4版仍然坚持该目标,但也引入了几个章节讲述关于应用程序的主题,这些主题与面向对象概念契合度很高。第1~10章涵盖了基本的面向对象概念,第11~15章将这些概念应用到了一些常用的面向对象技术中。例如,第1~10章提供了面向对象的基础课程(比如封装、多态、继承等),而第11~15章则介绍了一些实际应用。
第4版相对于之前的版本拓展了很多主题。以下列出了改进及更新的主题:
移动设备开发,包括手机应用、移动应用以及混合开发等。
iOS环境下的Objective-C代码示例。
使用XML及JSON实现可读性强的数据交换。
使用CSS、XSLT等技术实现数据渲染与转换。
Web服务,包括简单对象访问协议(SOAP)、RESTful Web服务等。
客户端/服务器端技术以及封送对象。
持久化数据和序列化对象。
很多章节都扩充了代码示例,在Pearson的网站可以在线查看用Java、C# .NET、VB .NET及Objectiv
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网