Pattern Languages of Program Design - 2

Language-Specific Patterns and Idioms

1 Localized Ownership: Managing Dynamic Objects in C++
Tom Cargiil
5
2 Lazy Optimization: Patterns for Efficient Smalltalk Programming
Ken Auer and Kent Beck
19
3 Partitioning Smalltalk Code into ENVY/Developer Components
Bobby Woolf
43

General-Purpose Patterns

4 Command Processor
Peter Sommerlad
63
5 Implementation Patterns for the Observer Pattern
Jung J. Kim and Kevin M. Benner
75
6 Patterns for Encapsulating Class Trees
Dirk Riehle
87
7 The Proxy Design Pattem Revisited
Hans Rohnert
105
8 MOODS: Models for Object-Oriented Design of State
Alexander Ran
119
9 Shopper
Jim Doble
143

Special-Purpose Patterns

10 Detachable Inspector / Removable cout: A Structural Pattern for Designing Transparent Layered Services
Aamod Sane and Roy Campbell
159
11 Design Patterns for Object-Oriented Hypermedia Applications
Gustavo Rossi, Alejandra Garrido, and Sergio Carvalho
177
12 Organizational Multiplexing: Patterns for Processing Satellite Telemetry with Distributed Teams
Stephen P. Berczuk
193
13 Backup Pattem: Designing Redundancy in Object-Oriented Software
Satish Subramanian and Wei-Tek Tsai
207
14 Crossing Chasms: A Pattern Language for Object-RDBMS Integration
Kyle Brown and Bruce G. Whitenack
227
15 Transactions and Accounts
Ralph E. Johnson
239

Architectural Patterns

16 Some Patterns for Software Architectures
Mary Shaw
255
17 Reflection
Frank Buschmann
271
18 Evolution, Architecture, and Metamorphosis
Brian Foote and Joseph Yoder
295

Process and Organization

19 Prioritizing Forces in Software Design
Alistair Cockburn
319
20 Decision Deferral and Capture Pattern Language
Allen Hopley
335
21 Organizational Patterns for Teams
Neil B. Harrison
345
22 Accountability and Organizational Structures
Martin Fowler
353
23 EPISODES: A Pattern Language of Competitive Development
Ward Cunningham
371

Exposition

24 Patterns for Classroom Education
Dana L. G. Anthony
391
25 Demo Prep: A Pattern Language for the Preparation of Software Demonstrations
Todd A. Coram
407
26 A Pattern Language for an Essay-Based Web Site
Robert Orenstein
417

Concurrent Programming / Distributed Systems

27 Half-Sync/Half-Async: An Architectural Pattern for Efficient and Well-Structured Concurrent I/O
Douglas C. Schmidt and Charles D. Cranor
437
28 Resource Exchanger: A Behavioral Pattern for Low-Overhead Concurrent Resource Management
Aamod Sane and Roy Campbell
461
29 The Client-Dispatcher-Server Design Pattern
Peter Sommerlad and Michael Stal
475
30 Active Object: An Object Behavioral Pattern for Concurrent Programming
R. Greg Lavender and Douglas C. Schmidt
483
31 Selecting Locking Designs for Parallel Programs
Paul E. McKenney
501

Reactive Systems

32 Object-Oriented Design Patterns in Reactive Systems
Amund Aarsten, Giuseppe Menga, and Luca Mosconi
537
33 Fault-Tolerant Telecommunication System Patterns
Michael Adams, James Coplien, Robert Gamoke, Robert Hanmer, Fred Keeve, and Keith Nicodemus
549
34 Improving Responsiveness in Interactive Applications Using Queues
William C. Wake, B. Douglas Wake, and Edward A. Fox
563
35 A Pattern Language for Improving the Capacity of Reactive Systems
Gerard Meszaros
575