注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术工业技术建筑科学建筑设计软件设计:Java语言实践

软件设计:Java语言实践

软件设计:Java语言实践

定 价:¥89.00

作 者: 马丁·P.罗毕拉德 著,乔海燕 郭佳怡 傅禹泽 邹雨桐 译
出版社: 机械工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787111664024 出版时间: 2020-09-01 包装: 平装
开本: 16开 页数: 252 字数:  

内容简介

  本教材提供了关于软件设计深入的介绍,重点关注面向对象的设计,并使用Java编程语言。目的是通过发掘设计过程中的经验来帮助读者学习软件设计。使用这样一种叙述方式:在上下文中介绍设计知识的每一个元素,并探索不同的解决方案,同时辅以数百个代码片段和设计图。

作者简介

  马丁·P.罗毕拉德(Martin P. Robillard)是麦吉尔大学的计算机科学系教授。他从2005年开始教授Java软件设计,并拥有20多年的Java程序设计经验。他目前的研究重点是与软件演化、体系结构和设计以及软件重用相关的问题。Martin是第20届ACM软件工程基础国际研讨会(FSE 2012)和第39届ACM/IEEE软件工程国际会议(ICSE 2017)的项目联合主席。

图书目录

出版者的话
译者序
前言
第1章 绪论1
1.1 定义软件设计3
1.2 软件开发过程中的设计5
1.3 获取设计知识6
1.4 共享设计技术8
1.4.1 设计模式8
1.4.2 设计反模式10
小结10
延伸阅读11
第2章 封装12
2.1 封装与信息隐藏12
2.2 将抽象编码为类型13
2.3 作用域与可见性限制16
2.4 对象图18
2.5 逃逸引用20
2.5.1 返回指向内部对象的引用21
2.5.2 在内部存储外部引用22
2.5.3 通过共享结构泄露引用22
2.6 不可变性23
2.7 提供内部数据25
2.7.1 扩展接口25
2.7.2 返回副本26
2.7.3 高级机制27
2.8 契约式设计27
小结30
代码探索30
延伸阅读32
第3章 类型与接口33
3.1 行为与实现解耦合33
3.2 指定接口的行为36
3.3 类图38
3.4 函数对象40
3.5 迭代器43
3.6 ITERATOR设计模式45
3.7 STRATEGY设计模式46
3.8 接口分离原则47
小结50
代码探索50
延伸阅读52
第4章 对象状态53
4.1 软件系统的静态和动态视图53
4.2 定义对象状态54
4.3 状态图55
4.4 设计对象生命周期57
4.4.1 无效和无用的状态58
4.4.2 不必要的状态信息58
4.5 可空性59
4.5.1 无须对不存在的值建模60
4.5.2 对不存在的值建模61
4.5.3 可选值类型62
4.5.4 NULL OBJECT设计模式63
4.6 终极域和变量64
4.7 对象身份、相等和唯一66
4.8 FLYWEIGHT设计模式68
4.9 SINGLETON设计模式71
4.10 嵌套类的对象72
4.10.1 内部类72
4.10.2 匿名类74
小结75
代码探索76
延伸阅读77
第5章 单元测试78
5.1 单元测试简介78
5.2 JUnit单元测试框架基础81
5.3 测试代码的组织82
5.4 元程序设计83
5.4.1 内省84
5.4.2 程序的操作86
5.4.3 程序元数据87
5.5 测试构建88
5.6 测试和异常条件91
5.7 封装与单元测试93
5.8 桩测试95
5.9 测试覆盖96
5.9.1 语句覆盖98
5.9.2 分支覆盖98
5.9.3 路径覆盖99
小结99
代码探索100
延伸阅读101
第6章 复合102
6.1 复合与聚合102
6.2 COMPOSITE设计模式105
6.3 时序图109
6.4 DECORATOR设计模式112
6.5 COMPOSITE与DECORATOR的结合116
6.6 多态对象复制118
6.6.1 声明实现Cloneable接口119
6.6.2 重写Object.clone()方法120
6.6.3 调用super.clone()120
6.6.4 捕获CloneNotSupported-Exception121
6.6.5 把clone()加入接口122
6.7 PROTOTYPE设计模式123
6.8 COMMAND设计模式124
6.9 迪米特法则127
小结128
代码探索129
延伸阅读131
第7章 继承132
7.1 继承的实例132
7.2 继承和子类134
7.2.1 向下类型转换135
7.2.2 单根的类层次结构136
7.3 继承域137
7.4 继承方法139
注解重写方法143
7.5 重载方法143
7.6 继承与复合145
7.7 抽象类147
7.8 重温DECORATOR设计模式149
7.9 TEMPLATE METHOD设计模式 151
7.9.1 终极方法与终极类152
7.9.2 抽象方法153
7.9.3 模式总结154
7.10 正确使用继承155
7.10.1 限制基类客户端的行为155
7.10.2 不适合作子类型的子类158
小结159
代码探索159
延伸阅读161
第8章 控制流反转162
8.1 使用控制流反转的动机162
8.2 模型–视图–控制器分解164
8.3 OBSERVER设计模式165
8.3.1 模型和观察者的连接165
8.3.2 模型和观察者间的控制流166
8.3.3 模型和观察者间的数据流168
8.3.4 事件驱动程序设计170
8.3.5 小结172
8.4 应用OBSERVER设计模式173
8.5 图形用户界面开发导论177
8.6 图形用户界面组件图178
8.6.1 用户体验视角178
8.6.2 逻辑视角179
8.6.3 源代码视角179
8.6.4 运行时视角181
8.6.5  定义对象图181
8.7 事件处理183
8.8 VISITOR设计模式186
8.8.1 具体和抽象访问者188
8.8.2 在类层次结构中集成操作189
8.8.3 遍历对象图191
8.8.4 OBSERVER模式中使用继承194
8.8.5 在访问者结构中支持数据流196
小结197
代码探索198
延伸阅读200
第9章 函数式设计201
9.1 一等函数201
9.2 函数式接口、lambda表达式和方法引用203
9.2.1 函数式接口203
9.2.2 lambda表达式204
9.2.3 方法引用207
9.3 使用函数复合行为208
9.4 用函数作数据供给者212
供给者函数与OBSERVER模式217
9.5 一等函数和设计模式218
9.5.1 函数式STRATEGY218
9.5.2 函数式COMMAND220
9.6 函数式数据处理221
9.6.1 数据作为流222
9.6.2 将高阶函数应用于流223
9.6.3 过滤流224
9.6.4 映射数据元素225
9.6.5 规约流226
小结228
代码探索228
延伸阅读230
附录A Java程序设计语言的重要概念231
附录B 代码规范237
附录C 应用实例240
参考文献242

本目录推荐