Thinking in Patterns with Java
http://www.mindview.net/Books/TIPatterns/
(2005-07-22,本书中文pdf版本已制作完成,下载在下面的地址上右键选择目标另存为:ttp://www.freewebs.com/lxwde/Thinking%20in%20Patterns.zip)
。。。。。。
我把原文的目录补贴出来,本来想慢慢翻完了一起贴,可实在是越来越没动力。希望贴出来以后能翻的快一点。
(可以点进去的是基本翻译好的)
The Y2K syndrome. 11
Context and composition. 12
A word about checked exceptions 13
What is a pattern. 15
Pattern taxonomy. 17
Design principles. 18
Classifying patterns. 19
The development challenge. 21
Unit testing. 21
Location of test code. 22
Messenger. 22
Collecting Parameter. 24
Singleton. 25
Exercises. 27
Object pool 27
Exercises. 30
Proxy: fronting for another object 31
The PoolManager using Proxy. 33
Dynamic Proxies. 36
State: changing object behavior? 38
Iterators: decoupling algorithms from containers 44
Type-safe iterators. 45
Exercises. 46
分解共同性(Factoring Commonality) 47
Strategy: choosing the algorithm at run-time 48
Policy: generalized strategy. 50
Template method. 50
Exercises. 52
封装创建(Encapsulating creation) 52
Simple Factory method. 53
Polymorphic factories. 55
Abstract factories. 58
Exercises. 61
Prototype. 61
Builder. 62
Exercises. 66
Flyweight: too many objects. 66
Decorator: too many classes. 69
Basic decorator structure. 70
A coffee example. 70
Class for each combination. 70
The decorator approach. 73
Compromise. 78
Other considerations. 82
Exercises. 83
连接不同类型(Connecting different types) 84
Adapter. 84
Bridge. 87
Exercises. 93
Composite. 93
Observer. 95
Observing flowers. 97
A visual example of observers. 101
Mediator. 103
Exercises. 104
降低接口复杂度(Reducing interface complexity) 104
Façade. 105
Package as a variation of Façade? 106
算法分解(Algorithmic partitioning) 106
Command: choosing the operation at run-time? 106
Exercises. 109
Chain of responsibility. 109
Exercises. 112
外部化对象状态(Externalizing object state) 113
Memento. 113
复杂的交互(Complex interactions) 114
Multiple dispatching. 114
Visitor, a type of multiple dispatching? 117
Exercises. 119
Interpreter motivation. 121
Python overview.. 122
Built-in containers. 123
Functions. 124
Strings. 125
Classes. 127
Creating a language. 130
Controlling the interpreter. 134
Putting data in. 134
Getting data out. 140
Multiple interpreters. 143
Controlling Java from Jython? 144
Inner Classes. 148
Using Java libraries. 148
Inheriting from Java library classes? 150
Creating Java classes with Jython? 151
Building the Java classes from the Python code? 156
The Java-Python Extension (JPE)? 157
Summary. 157
Exercises. 158
复杂系统的状态(Complex system states) 159
StateMachine. 159
Exercises. 169
Table-Driven State Machine. 169
The State class. 171
Conditions for transition. 172
Transition actions. 172
The table. 172
The basic machine. 173
Simple vending machine. 174
Testing the machine. 179
Tools. 180
Table-driven code: configuration flexibility? 180
Table-driven code using anonymous inner classes? 180
Exercises. 180
Simulating the trash recycler. 182
Improving the design. 186
“Make more objects”. 186
A pattern for prototyping creation? 189
Trash subclasses. 193
Parsing Trash from an external file? 195
Recycling with prototyping. 198
Abstracting usage. 199
Multiple dispatching. 203
Implementing the double dispatch?? 204
The Visitor pattern. 211
A Reflective Decorator. 214
More coupling?. 219
RTTI considered harmful?. 220
Summary. 223
Exercises. 224
Rats & Mazes. 225
Other maze resources. 230
XML Decorator. 230
Ant extensions. 231
Array utilities. 232