图书介绍
Java与模式PDF|Epub|txt|kindle电子书版本网盘下载
- 阎宏编著 著
- 出版社: 北京:电子工业出版社
- ISBN:7505380001
- 出版时间:2002
- 标注页数:1024页
- 文件大小:63MB
- 文件页数:1042页
- 主题词:Java
PDF下载
下载说明
Java与模式PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分3
第1章 模式的简史和形而上学3
1.1 模式是什么3
1.2 软件模式的简史3
1.3 模式的起源4
1.4 与道家思想的关系5
1.5 软件的永恒之道8
1.6 模式的要素10
1.7 本书讲解模式的格式11
第2章 统一建模语言UML简介13
2.1 建造世界贸易中心13
2.2 什么是UML14
2.3 UML包括什么15
2.4 类图17
2.5 时序图24
2.6 状态图25
2.7 UML及建模的工具27
第二部分33
第3章 软件的可维护性与可复用性33
3.1 软件系统的可维护性33
3.2 系统的可复用性37
3.3 老子论“不武”40
第4章 “开-闭”原则(OCP)41
4.1 什么是“开-闭”原则41
4.2 怎样做到“开-闭”原则41
4.3 与其他设计原则的关系43
4.4 策略模式对“开-闭”原则的支持45
4.5 在其他设计模式中的体现46
4.6 一个重构做法的讨论49
第5章 专题:Java语言的接口53
5.1 什么是接口53
5.2 为什么使用接口54
5.3 Java接口常见的用法56
第6章 专题:抽象类61
6.1 什么是抽象类61
6.2 抽象类的用途61
6.3 基于抽象类的模式和原则64
6.4 什么时候才应当使用继承复用64
7.1 美猴王的智慧69
第7章 里氏代换原则(LSP)69
7.2 什么是里氏代换原则70
7.3 里氏代换原则在设计模式中的体现71
7.4 墨子论“取譬”73
7.5 从代码重构的角度理解74
第8章 依赖倒转原则(DIP)85
8.1 为何而“倒转”85
8.2 复用与可维护性的“倒转”86
8.3 依赖倒转原则86
8.4 怎样做到依赖倒转原则88
8.5 Java对抽象类型的支持90
8.6 一个例子:账号、账号的种类和账号的状态92
8.8 依赖倒转原则的优缺点95
8.7 墨子论“取周”95
第9章 接口隔离原则(ISP)97
9.1 什么是接口隔离原则97
9.2 一个角色隔离原则的例子98
9.3 定制服务的例子100
第10章 合成/聚合复用原则(CARP)103
10.1 合成和聚合的区别103
10.2 复用的基本种类103
10.3 从代码重构的角度理解105
第11章 迪米特法则(LoD)109
11.1 迪米特法则的各种表述109
11.2 狭义的迪米特法则109
11.3 迪米特法则与设计模式114
11.4 广义的迪米特法则116
11.5 广义迪米特法则在类的设计上的体现117
11.6 广义迪米特法则在代码层次上的实现120
11.7 老子论“圣人之治”120
第三部分127
第12章 简单工厂(Simple Factory)模式127
12.1 工厂模式的几种形态127
12.2 简单工厂模式的引进128
12.3 简单工厂模式的结构134
12.4 简单工厂模式的实现136
12.5 简单工厂模式与其他模式的关系140
12.6 简单工厂模式的优点和缺点142
12.7 简单工厂模式在Java中的应用143
12.8 女娲抟土造人146
第13章 工厂方法(Factory Method)模式151
13.1 引言151
13.2 工厂方法模式的结构153
13.3 工厂方法模式在农场系统中的实现157
13.4 关于工厂方法模式的实现162
13.5 Java语言中工厂方法模式的例子165
13.6 工厂方法模式与其他模式的关系168
13.7 女娲举绳造人170
13.8 其他的例子170
第14章 抽象工厂(Abstract Factory)模式179
14.1 引言179
14.2 问题181
14.3 抽象工厂模式的结构184
14.4 在什么情形下应当使用抽象工厂模式189
14.5 抽象工厂模式在农场系统中的实现191
14.6 抽象工厂模式的另一个例子196
14.7 “开-闭”原则197
14.8 相关的模式与模式的实现198
14.9 女娲造万物的故事200
14.10 附录:Java AWT的Peer架构与抽象工厂模式206
第15章 单例(Singleton)模式209
15.1 引言209
15.2 单例模式的结构210
15.3 在什么情况下使用单例模式215
15.4 单例类的状态216
15.5 一个实用的例子:属性管理器217
15.6 Java语言中的单例模式223
15.7 专题:不完全的单例类226
15.8 相关模式227
15.9 附录:双重检查成例的研究230
15.10 给读者的一点建议234
第16章 专题:单例模式与MX记录235
16.1 问题与解决方案235
16.2 目录服务与MX记录237
16.3 JNDI架构介绍237
16.4 如何使用JNDI编程238
16.5 系统设计241
16.6 讨论246
第17章 专题:多例(Multiton)模式与多语言支持253
17.1 引言253
17.2 多例模式254
17.3 多语言项目的设计258
第18章 专题:序列键生成器与单例及多例模式267
18.1 问题267
18.2 将单例模式应用到系统设计中269
18.3 将多例模式应用到系统设计中281
18.4 讨论284
第19章 建造(Builder)模式285
19.1 引言285
19.2 建造模式的结构286
19.3 建造模式的活动序列290
19.4 建造模式的实现291
19.5 众神造人的神话故事295
19.6 JavaMail中的建造模式296
19.7 一个发送邮件的例子298
19.8 在什么情况下使用建造模式308
19.9 建造模式与其他模式的关系309
第20章 原始模型(Prototype)模式317
20.1 引言317
20.2 变量、对象以及对象的引用318
20.3 Java对象的复制319
20.4 原始模型模式的结构323
20.5 模式的实现:深复制和浅复制327
20.6 孙大圣的身外身法术329
20.7 在什么情况下使用原始模型模式340
20.8 原始模型模式的优点和缺点341
20.9 原始模型模式与其他模式的关系341
21.1 什么是“冷藏”和“解冻”345
第21章 专题:JavaBean的“冷藏”和“解冻”345
21.2 什么可以“冷藏”346
21.3 Beans.instantiate()方法348
21.4 怎样在JSP中使用Beans.Instantiate()方法353
21.5 与装饰模式的关系354
第四部分359
第22章 适配器(Adapter)模式359
22.1 引言359
22.2 类的适配器模式的结构360
22.3 类的适配器模式的效果361
22.4 对象的适配器模式的结构362
22.5 在什么情况下使用适配器模式364
22.6 Iterator与Enumeration364
22.7 利用适配器模式指方为圆367
22.8 适配器模式在架构层次上的应用370
22.9 关于模式实现的讨论373
22.10 适配器模式与相关的模式373
第23章 缺省适配(Default Adapter)模式379
23.1 鲁智深的故事379
23.2 Window Adapter是缺省适配模式381
23.3 模式的结构384
23.4 在什么情况下使用本模式385
23.5 模式的实现385
23.6 J2SE中的缺省适配模式386
23.7 一个例子387
第24章 专题:XMLProperties与适配器模式391
24.1 引言391
24.2 SAX2浏览器393
24.3 开始XMLProperties项目398
第25章 合成(Composite)模式409
25.1 对象的树结构409
25.2 介绍合成模式411
25.3 安全式和透明式的合成模式412
25.4 安全式的合成模式的结构413
25.5 透明式的合成模式的结构416
25.6 合成模式的实现419
25.7 道士的故事420
25.8 一个绘图的例子421
25.9 AWT库中的例子428
25.10 合成模式与其他模式的关系429
26.2 装饰模式的结构435
第26章 装饰(Decorator)模式435
26.1 引言435
26.3 装饰模式应当在什么情况下使用441
26.4 孙大圣的故事441
26.5 使用装饰模式的优点和缺点442
26.6 模式实现的讨论443
26.7 装饰模式与其他模式的关系446
26.8 实例:GrepReader447
26.9 一个例子:发票系统451
26.10 附录:关于适配器模式与装饰模式的对话464
第27章 专题:设计模式在Java I/O库中的应用469
27.1 引言469
27.2 Java I/O库的设计原则471
27.3 装饰模式的应用472
27.4 半透明的装饰模式480
27.5 适配器模式的应用483
27.6 从byte流到char流的适配489
第28章 代理(Proxy)模式495
28.1 引言495
28.2 代理的种类496
28.3 代理模式的结构498
28.4 代理模式的时序501
28.5 Java 2.0对代理模式的支持502
28.6 高老庄悟空降八戒506
28.7 代理模式的优点和缺点508
28.9 代理模式与其他模式的关系509
28.8 代理模式的实现509
29.1 问题513
29.2 系统设计513
第29章 专题:智能引用代理513
29.3 系统的时序516
29.4 系统的源代码516
第30章 专题:虚拟代理的例子521
30.1 问题521
30.2 系统的要求521
30.3 系统的设计522
30.4 系统的时序522
30.5 系统的源代码523
31.1 引言527
第31章 享元模式(Flyweight Pattem)527
31.2 单纯享元模式的结构528
31.3 复合享元模式的结构532
31.4 模式的实现537
31.5 一个咖啡摊的例子543
31.6 咖啡屋的例子548
31.7 享元模式应当在什么情况下使用553
31.8 从代码重构的角度看享元模式553
31.9 享元模式的优点和缺点555
31.10 相关的模式555
第32章 门面(Facade)模式561
32.1 引言561
32.3 门面模式的实现563
32.2 门面模式的结构563
32.4 在什么情况下使用门面模式564
32.5 迪米特法则(LoD)564
32.6 一个例子565
32.7 使用门面模式的设计568
32.8 Session门面模式572
第33章 桥梁(Bridge)模式575
33.1 引言575
33.2 桥梁模式的结构577
33.3 Java语言中的Peer架构579
33.4 驱动器和JDBC驱动器583
33.5 从重构的角度考察584
33.6 桥梁模式和其他模式的关系590
33.7 八戒“转世投胎”的故事592
33.8 关于桥梁模式的实现594
33.9 在什么情况下应当使用桥梁模式595
第五部分603
第34章 不变(Immutable)模式603
34.1 引言603
34.2 不变模式的结构和实现603
34.3 不变模式在Java语言中的应用605
34.4 不变模式的优点和缺点606
34.5 不变模式与享元模式的关系606
34.6 一个例子:复数类607
第35章 策略(Strategy)模式621
35.1 引言621
35.2 模式的实现623
35.3 Java语言内部的例子624
35.4 排序策略系统626
35.5 一个例子:图书折扣的计算627
35.6 在什么情况下应当使用策略模式632
35.7 策略模式的优点和缺点632
35.8 策略模式与其他模式的关系633
35.9 设计原则的讨论635
35.10 诸葛亮的锦囊妙计635
第36章 模版方法(Template Method)模式641
36.1 引言641
36.2 模版方法模式的结构641
36.3 “好莱坞原则”643
36.4 一个例子644
36.5 继承作为复用的工具647
36.6 Java语言里面使用过的模版方法模式648
36.7 模版方法模式中的方法650
36.8 模版方法模式在代码重构中的应用651
36.9 重构的原则655
36.10 西天取经的八十一难656
第37章 专题:Servlet技术中的模式659
37.1 Servlet技术介绍659
37.2 模版方法模式的使用661
37.3 观察者模式的应用665
第38章 观察者(Observer)模式671
38.1 引言671
38.2 观察者模式的结构672
38.3 另一种实现方案676
38.4 Java语言提供的对观察者模式的支持679
38.5 菩萨的守瓶龟686
38.6 Java中的DEM事件机制687
38.7 观察者模式与其他模式的关系688
第39章 专题:观察者模式与AWT中的事件处理691
39.1 引言691
39.2 DEM的结构691
第40章 专题:观察者模式与SAX2浏览器705
40.1 引言705
40.2 SAX2是怎么工作的706
40.3 ContentHandler接口706
40.4 怎样实现ContentHandler接口708
40.5 怎样使用contentHandler710
40.6 缺省适配模式与DefaultHandler711
40.7 简单工厂模式的应用716
第41章 专题:观察者模式与Swing定时器717
41.1 为什么需要定时器717
41.2 Utility定时器与Swing定时器的区别717
41.3 使用Swing定时器的方法719
41.4 观察者模式的应用720
41.5 单例模式的应用724
第42章 专题:MVC模式与用户输入数据检查729
42.1 什么是MVC模式729
42.2 MVC是架构模式731
42.3 MVC模式在J2EE技术中的应用733
42.4 从代码重构的角度查看735
42.5 用户输入检查与MVC模式736
42.6 SQL注射738
第43章 迭代子(Iterator)模式743
43.1 引言743
43.2 迭代子模式的结构745
43.3 迭代子模式的实现755
43.4 迭代子模式的优点和缺点757
43.5 一个例子757
43.6 迭代子模式与其他模式的关系763
第44章 专题:Java对迭代子模式的支持769
44.1 Java聚集769
44.2 Java聚集中的迭代子771
44.3 java.util.Iterator接口772
44.4 Java迭代子接口ListIterator775
44.5 Enumeration与Iterator780
44.6 其他相关模式782
第45章 责任链(Chain of Responsibility)模式785
45.1 从击鼓传花谈起785
45.2 责任链模式的结构785
45.3 纯的与不纯的责任链模式788
45.4 Java1.0版的AWT事件处理机制789
45.5 《红楼梦》中击鼓传花的故事790
45.6 Java系统的解792
45.7 责任链模式的实现798
45.8 对象的树结构799
45.9 DHTML中的事件处理800
45.10 责任链模式与其他模式的关系804
46.1 线程809
第46章 专题:定时器与击鼓传花809
46.2 定时器810
46.3 击鼓传花812
第47章 命令(Command)模式823
47.1 引言823
47.2 命令模式的结构824
47.3 玉帝传美猴王上天827
47.4 Java语言内的例子:AWT的事件处理828
47.5 一个例子:创世纪系统828
47.6 一个例子:AudioPlayer系统833
47.7 增加宏命令功能839
47.8 模式的实现841
47.9 在什么情况下应当使用命令模式842
47.11 命令模式与其他模式的关系843
47.10 使用命令模式的优点和缺点843
第48章 专题:Swing库中的命令撤销和恢复853
48.1 在视窗系统中使用命令模式853
48.2 Swing的基本撤销功能853
48.3 一休论禅的文字框861
第49章 备忘录(Memento)模式869
49.1 备忘录模式的结构869
49.2 备忘录模式的白箱实现870
49.3 双重接口及其在Java语言中的实现875
49.4 备忘录模式的黑箱实现878
49.5 负责人角色的增强883
49.6 备忘录模式与多重检查点884
49.7 “自述历史”模式890
49.8 “假如”协议模式894
49.9 备忘录模式与其他模式的关系895
49.10 备忘录模式的应用896
49.11 使用备忘录模式的优点和缺点898
49.12 观世音甘泉活树的故事899
第50章 状态(State)模式907
50.1 引言907
50.2 状态模式的结构907
50.3 曾侯乙编钟的描述909
50.4 状态模式的效果910
50.5 在什么情况下使用状态模式911
50.6 关于模式实现的讨论911
50.7 一个状态模式的应用例子:TCP912
50.8 状态模式在绘图软件中的应用914
50.9 用户登录子系统915
50.10 状态模式与策略模式的区别921
第51章 专题:崂山道士与状态模式923
51.1 有状态的墙923
51.2 异常逻辑923
51.3 从代码重构的角度考察924
第52章 专题:单分派和多分派929
52.1 分派的概念929
52.2 双重分派933
52.3 未来的Java语言940
第53章 访问者(Visitor)模式945
53.1 引言945
53.2 访问者模式的结构947
53.3 系统的时序图953
53.4 在什么情况下应当使用访问者模式954
53.5 使用访问者模式的优点和缺点955
53.6 访问者模式的实现956
53.7 电脑专卖系统:问题与对象960
53.8 电脑专卖系统的访问者模式设计962
53.9 与访问者模式有关的模式976
第54章 解释器(Interpreter)模式979
54.1 引言979
54.2 解释器模式的结构980
54.3 一个示意性的实现981
54.4 有关模式991
55.1 引言993
第55章 调停者(Mediator)模式993
55.2 调停者模式的结构996
55.3 调停者模式的实现1001
55.4 迪米特法则(LoD)1002
55.5 调停者模式的优点和缺点1002
55.6 调停者模式的使用条件1003
55.7 与调停者模式有关的模式1004
附录A 设计模式一览表1007
A.1 创建模式1007
A.2 结构模式1009
A.3 行为模式1011
附录B UML图标及其Java实现一览表1015
附录C 中英术语对照表1017