UML for Java Programmers
中文共享版
(正式中文共享版 Ver 1.0)
[重要说明:本文档目前是我们快速完成的草稿版,肯定存在一些翻译问题,请
各位阅读过的兄弟能够帮我们指出存在的问题,这将是对我们的工作的最大支
持!有任何建议和问题请登陆
http://www.Matrix.org.cn论坛讨论!请随时关注
Matrix获得最新版本和其他翻译书籍]
原著:Robert Cecil Martin
翻译:
Wanghaibo; Melthaw Zhang; Orient Sun; LishiFeng
http://www.Matrix.org.cn
注明:本资料由Wanghaibo 和 Melthaw Zhang 等负责翻译并授权Matrix
(http://www.Matrix.org.cn)发布,您可以免费使用和任意传播,但是您必须遵循以下条款:
1.不得用于任何商业目的,包括但不仅限于出版,印刷,销售,咨询。
2.您可以传播本资料,但是传播必须保留本协议说明并不可做任何修改。
3.不得对本文内容进行修改再传播,为了保证文章内容和版本的统一,任何修改建议请在
Matrix 论坛讨论,并由 Matrix 组织统一修改,修改后统一发布修改过后的版本。
4.Matrix 对本授权协议拥有最终解释权。
5.与本书相关的所有公告都发布在Matirx的Uml论坛
Chris (Chris@Matrix.org.cn)
From Matrix
Matrix-与 Java 共舞 (http://www.Matrix.org.cn)
翻译日志
NO:
章节 开始日期 结束日期 参与人 文档版本号
1
第二章到第四章
2004-4-7 2004-4-10 Wanghaibo Ver 0.4
2
第五章
2004-4-16 2004-4-16 Wanghaibo Ver 0.5
3
补上第一章
2004-4-18 2004-4-18 Wanghaibo Ver 0.51
4
第七章
2004-4-19 2004-4-28 Melthaw Zhang Ver 0.6
5
完成第六章
2004-4-19 2004-4-29 Wanghaibo Ver 0.7
6
完成第八、九章
2004-4-19 2004-5-12 Orient Sun Ver 0.8
7
完成第十章
2004-4-19 2004-5-12 LishiFeng Ver 0.8
8
完成第十一章
2004-5-1 2004-5-13 Melthaw Zhang Ver 0.9
9
完成第十二章
2004-9-14 2004-9-15 Wanghaibo Ver 1.0
10
修订第八、九、十、
十一、十二章
2004-10-1 2004-10-1
5
Melthaw Zhang Ver 1.1
非常感谢各位参与者的辛勤努力!!!
关于 Matrix 的最新消息
[ 公告]Matrix 站衫
向IT界倡议:援助程序员王俊行动
发布UML for Java Programmers中文共享版
[公告]Matrix站衫-实物照片
[公告]新开数据库专区-Oracle专业论坛
Matrix Java大讲坛-产品开发过程
[New]Matrix 正式启用Jmatrix
第 2 页 共 247 页
Matrix-与 Java 共舞 (http://www.Matrix.org.cn)
目 录
第一章 针对 Java 程序员的 UML 概述 ............................................................................. 10
各种类型的图 .....................................................................................................11
类图(Class Diagram)..................................................................................11
对象图(Object Diagram) ........................................................................... 13
序列图(sequence diagram)........................................................................ 14
协作图(collaboration diagram)............................................................... 15
状态图(State Diagrams)........................................................................ 15
小结 .................................................................................................................. 16
参考文献 ........................................................................................................... 16
第二章 使用图(Diagrams) ............................................................................................. 17
为什么用模型?................................................................................................. 17
为什么给软件建模? .................................................................................. 17
我们为什么应该在编码前构造一个全面的设计? ....................................... 18
有效地使用 UML ............................................................................................... 18
人员之间传达 ............................................................................................. 18
最后的文档................................................................................................. 21
保留什么,舍弃什么?............................................................................... 22
迭代精化 ........................................................................................................... 22
行为(Behavior)优先.................................................................................... 22
检查结构 .................................................................................................... 24
在脑海中想像这些代码............................................................................... 26
迭代精化 .................................................................................................... 27
最低纲领 ........................................................................................................... 27
什么时候和如何画图 ......................................................................................... 28
什么时候画 UML 图,什么时候停止........................................................... 28
Case 工具 .................................................................................................. 29
用文档如何? ............................................................................................. 29
用 Javadocs............................................................................................... 30
小结 .................................................................................................................. 30
第 3 页 共 247 页
Matrix-与 Java 共舞 (http://www.Matrix.org.cn)
第三章 类(Class)图 ...................................................................................................... 32
基础知识 ........................................................................................................... 32
类............................................................................................................... 32
关联 ........................................................................................................... 33
多重性........................................................................................................ 33
继承 ........................................................................................................... 33
一个类图的例子................................................................................................. 35
细节 .................................................................................................................. 36
类的构造型................................................................................................. 36
抽象类........................................................................................................ 37
属性 ........................................................................................................... 38
聚合 ........................................................................................................... 38
组合 ........................................................................................................... 39
多重性........................................................................................................ 40
关联构造型................................................................................................. 41
内部类........................................................................................................ 42
匿名内部类................................................................................................. 42
关联类........................................................................................................ 43
关联限定符................................................................................................. 44
小结 .................................................................................................................. 44
参考文献 ........................................................................................................... 44
第四章 序列(Sequence)图 ............................................................................................. 45
基础 .................................................................................................................. 45
对象、生命线、消息 .................................................................................. 45
创建和销毁................................................................................................. 46
简单的循环................................................................................................. 47
案例和场景................................................................................................. 48
高级概念 ........................................................................................................... 50
循环和条件................................................................................................. 50
花时间的消息 ............................................................................................. 52
第 4 页 共 247 页
Matrix-与 Java 共舞 (http://www.Matrix.org.cn)
异步消息 .................................................................................................... 53
多线程........................................................................................................ 55
活动对象 .................................................................................................... 56
发送消息给接口 ......................................................................................... 57
小结 .................................................................................................................. 58
第五章 用例(use case)................................................................................................. 59
编写用例 ........................................................................................................... 59
什么是用例................................................................................................. 59
主要课程 .................................................................................................... 60
预备课程 .................................................................................................... 60
其他 ........................................................................................................... 61
用例图............................................................................................................... 61
系统边界图................................................................................................. 61
用例关系 .................................................................................................... 62
小结 .................................................................................................................. 62
第六章 面向对象设计(OOD)原则................................................................................. 63
设计质量 ........................................................................................................... 63
臭哄哄的设计 ............................................................................................. 63
依存关系管理 ............................................................................................. 64
单一职责原则(SRP)...................................................................................... 64
开放-封闭原则(OCP) .................................................................................... 66
Liskov 替换原则(LSP) ....................................................................................... 79
依存关系倒置原则(DIP)..................................................................................... 81
接口隔离原则(ISP) ....................................................................................... 81
小结 .................................................................................................................. 83
参考文献 ........................................................................................................... 83
第七章 dX实践 85
迭代开发 ........................................................................................................... 85
初始探索 .................................................................................................... 85
功能特征评估 ............................................................................................. 86
第 5 页 共 247 页