图书介绍
设计模式-Java语言中的应用PDF|Epub|txt|kindle电子书版本网盘下载
![设计模式-Java语言中的应用](https://www.shukui.net/cover/70/33184735.jpg)
- 结城浩著;博硕文化译 著
- 出版社: 北京:中国铁道出版社
- ISBN:7113064566
- 出版时间:2005
- 标注页数:436页
- 文件大小:18MB
- 文件页数:456页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
设计模式-Java语言中的应用PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第0章 漫谈UML1
UML2
类图2
类和层次的关系2
接口与实现3
聚合4
存取控制5
类间的关联性5
顺序图6
处理流程和对象间的协调6
开始学习Design Patterns之前7
Design Patterns不等于类函数库7
不要认为程序范例已经是完成品8
不过,类函数库中确实用到Design Patterns8
图不能只是看,要仔细解读9
自己仔细琢磨范例9
了解角色功能——白雪公主给谁演9
第1部分 先熟悉设计Pattern11
第1章 Iterator——迭代器11
Iterator Pattern12
程序示例12
Aggregate接口13
Iterator接口14
Book类15
BookShelf类15
BookShelfIterator类16
Main类17
Iterator Pattern的所有参与者18
无论实现结果如何,都能使用Iterator19
扩展自我视野的提示19
抽象类、接口实在很难搞20
Aggregate与Iterator的对应20
“下一个”容易搞错21
“最后一个”也容易错21
一个以上的Iterator21
各种iterator21
不需要deleteIterator21
相关Pattern22
重点回顾22
练习题22
第2章 Adapter(适配器)——换个包装再度利用23
程序示例(1)(继承)24
Adapter Pattern24
Banner类25
Print接口26
PrintBanner类26
Main类27
程序示例(2)(委托)27
Print类28
PrintBanner类29
Adapter Pattern的所有参与者29
扩展自我视野的提示30
什么时候用30
就算没有源程序也无妨31
版本更新与兼容性31
重点回顾32
相关Pattern32
类差别太大32
练习题33
第2部分 万事交给子类35
第3章 Template Method(模板方法)——实际处理就交给子类35
Template Method Pattern36
何谓模板(Template)36
Template Method Pattern是什么36
程序示例37
AbstractDisplay类38
CharDisplay类38
StringDisplay类39
Main类41
逻辑可共享42
扩展自我视野的提示42
Template Method Pattern的所有参与者42
父类跟子类的连续性43
子类应视同父类43
相关Pattern43
进阶说明:类层次与抽象类44
父类对子类的要求44
抽象类的意义44
父类跟子类之间的协调44
重点回顾45
练习题45
第4章 Factory Method(工厂方法)——建立对象实例交给子类47
Factory Method Pattern48
程序示例48
Factory类49
Product类49
IDCard类50
IDCardFactory类51
Main类51
Factory Method Pattern的所有参与者52
扩展自我视野的提示53
框架与内容53
产生对象实例——方法的实现方式54
Pattern利用与程序开发工程师之间的沟通55
相关Pattern55
重点回顾56
练习题56
第3部分 建立对象实例57
第5章 Singleton(单件)——惟一的对象实例57
程序示例58
Singleton Pattern58
Singleton类59
Main类59
Singleton Pattern的所有参与者60
扩展自我视野的提示61
设限的理由61
惟一对象实例产生的时间点61
相关Pattern61
重点回顾61
练习题62
第6章 Prototype(原型)——复制建立对象实例63
Prototype Pattern64
程序示例65
Manager类66
Product接口66
MessageBox类67
UnderlinePen类68
Main类69
Prototype Pattern的所有参与者70
扩展自我视野的提示71
难道真的不能利用类来建立对象实例吗71
类名是一种束缚72
相关Pattern72
深入说明:clone方法和java.lang.Cloneable接口73
Java语言的clone73
clone方法是在哪里定义73
Cloneable所要求的方法是什么73
练习题74
clone方法做的是浅拷贝(shallow copy)74
重点回顾74
第7章 Builder(生成器)——组合复杂的对象实例75
Builder Pattern76
程序示例76
Builder类77
Director类77
TextBuilder类78
HTMLBuilder类79
Main类80
Builder Pattern的所有参与者83
相关Pattern84
在设计时该决定哪些事、又不该决定哪些事85
谁知道哪个部分85
扩展自我视野的提示85
源代码的解读与修改86
重点回顾86
练习题86
第8章 Abstract Factory(抽象工厂)——把相关零件组合成产品89
Abstract Factory Pattern90
程序示例90
抽象零件:Item类94
抽象零件:Link类95
抽象零件:Tray类95
抽象产品:Page类96
抽象工厂:Factory类97
利用工厂把零件组合成产品:Main类98
具体零件:ListLink类100
具体工厂:ListFactory类100
具体零件:ListTray类101
具体产品:ListPage类102
在程序示例中新增其他的具体工厂103
具体工厂:TableFactory类105
具体零件:TableLink类106
具体零件:TableTray类106
具体产品:TablePage类107
Abstract Factory Pattern的所有参与者108
扩展自我视野的提示110
新增具体工厂尤如探囊取物110
新增零件很有难度110
相关Pattern110
深入说明:各种建立对象实例的手段111
练习题112
重点回顾112
第4部分 切割性思考113
第9章 Bridge(桥接)——分成功能层次和实现层次113
Bridge Pattern114
类层次的两大责任114
程序示例116
功能的类层次:Display类116
功能的类层次:CountDisplay类117
实现的类层次:DisplayImpl类118
实现的类层次:StringDisplayImpl类118
Main类119
Bridge Pattern的所有参与者121
扩展自我视野的提示121
先区分再扩充就很轻松121
继承是生死不离、委托是潇洒分手122
相关Pattern123
重点回顾123
练习题123
第10章 Strategy(策略)——把算法整个换掉125
Strategy Pattern126
程序示例126
Hand类127
Strategy接口129
WinningStrategy类129
ProbStrategy类130
Player类132
Main类133
Strategy Pattern的所有参与者135
执行时也可切换136
为什么要特地建立Strategy参与者136
扩展自我视野的提示136
相关Pattern137
重点回顾137
练习题137
第5部分 一视同仁141
第11章 Composite(组成)——对容器和内容一视同仁141
Composite Pattern142
程序示例142
Entry类143
File类144
Directory类145
FileTreatmentException类147
Main类147
单、复数的一视同仁150
扩展自我视野的提示150
Composite Pattern的所有参与者150
add放在哪里151
递归结构随时都会出现152
相关Pattern152
重点回顾152
练习题152
第12章 Decorator(装饰)——对装饰和内容一视同仁155
Decorator Pattern156
程序示例156
Display类157
StringDisplay类158
Border类159
SideBorder类159
FullBorder类161
Main类162
Decorator Pattern的所有参与者163
扩展自我视野的提示164
可穿透的接口(API)164
可新增功能但内容不变165
可新增动态功能165
即使只有简单的种类规划,也可增加多种功能165
java.io包和Decorator Pattern166
小类多了一点167
相关Pattern167
深入说明:继承和委托的一视同仁167
继承——对子类和父类一视同仁167
委托——对自己和委托对象一视同仁168
重点回顾169
练习题170
第6部分 在结构中穿梭来去173
第13章 Visitor(访问者)——在结构中穿梭还同时做事173
Visitor Pattern174
程序示例174
Visitor类174
Acceptor接口176
Entry类176
File类177
Directory类178
ListVisitor类179
FileTreatmentException类180
Main类180
Visitor和Acceptor两边彼此调用182
Visitor Pattern的所有参与者183
双重调度(double dispatch)184
扩展自我视野的提示184
为什么要搞得这么复杂185
The Open-Closed Principle——扩充时开放、修改时关闭185
新增ConcreteVisitor参与者?简单186
新增ConcreteAcceptor参与者?复杂186
Visitor要怎样做才能进行处理186
相关Pattern186
重点回顾187
练习题187
第14章 Chain of Responsibility(职责链)——责任转送191
Chain of Responsibility责任转送192
程序示例192
Support类193
Trouble类193
NoSupport类195
LimitSupport类195
OddSupport类196
SpecialSupport类196
Main类197
Chain of Responsibility Pattern的所有参与者198
扩展自我视野的提示199
让要求跟处理要求两者间的结合关系不会太紧密199
机动性改变连锁形态200
能更专心在自己的工作岗位上200
转送会不会导致处理变慢200
重点回顾201
练习题201
相关Pattern201
第7部分 简单最好203
第15章 Facade(外观)——单一窗口203
Facade单一窗口204
程序示例204
Database类206
HtmlWriter类206
PageMaker类208
Main类209
Facade Pattern的所有参与者210
扩展自我视野的提示211
Facade参与者到底在做什么事211
Facade Pattern的递归应用211
程序设计师拒绝使用Facade的理由——敏感的心理因素211
练习题212
相关Pattern212
重点回顾212
第16章 Mediator(中介者)——只要面对一个顾问215
Mediator Pattern216
程序示例216
Mediator接口220
Colleague接口220
ColleagueButton类221
ColleagueTextField类222
ColleagueCheckbox类223
LoginFrame类224
Main类227
Mediator Pattern的所有参与者227
哪些可以再利用229
通讯路径数量暴增229
扩展自我视野的提示229
当分散变成灾难时229
相关Pattern230
重点回顾230
练习题230
第8部分 管理状态231
第17章 Observer(观察者)——通知状态变化231
Observer Pattern232
程序示例232
Observer接口232
NumberGenerator类233
RandomNumberGenerator类234
DigitObserver类235
GraphObserver类235
Main类236
Observer Pattern的所有参与者237
扩展自我视野的提示238
这里也可对换238
Observer的顺序239
Observer的行为影响Subject时239
如何处理更新的提示239
“通知”的意义重于“观察”240
Model/View/Controller(MVC)240
补充说明:java.util.Observer接口241
相关Pattern241
重点回顾241
练习题242
第18章 Memento(备忘录)——存储状态243
程序示例244
Memento Pattern244
Memento类245
Gamer类246
Main类248
Memento Pattern的所有参与者252
扩展自我视野的提示253
2种接口(API)与存取控制253
Memento可以有几个255
Memento有没有使用期限255
Caretaker参与者跟Originator参与者区隔使用的意义255
相关Pattern255
重点回顾256
练习题256
第19章 State(状态)——以类表示状态259
金库保安系统260
State Pattern260
程序示例260
不使用State Pattern的虚拟程序代码261
使用State Pattern的虚拟程序代码262
State接口263
DayState类265
NightState类266
Context接口267
SafeFrame类267
Main类271
State Pattern的所有参与者272
扩展自我视野的提示273
分割统合273
状态迁移该由谁管274
有此状态才会有的处理274
新增状态易如反掌275
不会有自我矛盾275
变化万千的对象实例276
相关Pattern276
重点回顾277
练习题277
第9部分 精简不浪费279
第20章 Flyweight(享元)——有相同的部分就共享,采取精简政策279
Flyweight Pattern280
程序示例280
BigChar类285
BigCharFactory类286
BigString类287
Flyweight Pattern的所有参与者289
Main类289
扩展自我视野的提示290
影响会传到所有相关位置290
Intrinsic和extrinsic291
管理中的对象实例不会被视为垃圾收集291
非内存部分的记录292
相关Pattern293
重点回顾293
练习题293
第21章 Proxy(代理)——要用再建立295
Proxy Pattern296
程序示例296
Printer类298
PrinterProxy类299
Printable接口299
Main类301
Proxy Pattern的所有参与者301
扩展自我视野的提示302
利用代理提高处理速度302
不能让代理和本人合二为一吗303
代理和委托303
穿透性303
HTTP proxy304
各种Proxy304
相关Pattern304
重点回顾305
练习题305
第22章 Command(命令)——将命令写成类307
第10部分 用类来表示307
Command Pattern308
程序示例308
Command接口309
MacroCommand类310
DrawCommand类311
Drawable接口312
DrawCanvas类312
Main类314
Command Pattern的所有参与者317
扩展自我视野的提示319
命令应该要有的信息是什么319
存储记录319
转换器320
练习题322
重点回顾322
相关Pattern322
第23章 Interpreter(解释器)——以类来表达语法规则325
Interpreter Pattern326
迷你语言326
迷你语言的命令326
迷你程序示例327
迷你语言的语法330
终点表达式与非终点表达式331
程序示例331
Node类332
ProgramNode类333
CommandListNode类334
CommandNode类335
RepeatCommandNode类336
PrimitiveCommandNode类337
Context类337
ParseException类339
Main类339
Interpreter Pattern的所有参与者341
扩展自我视野的提示342
还有其他不同的迷你语言吗342
略过/读入343
相关Pattern343
重点回顾和最后的叮咛343
练习题344
附录345
附录A 练习题的解答345
附录B GoF的设计Pattern分类435