Patterns are a literary form with roots in literate programming,
in a design movement of the same name in contemporary architecture,
and in the practices common to the ageless literature of any culture.
This volume, with contributions from the biggest names in the patterns community,
is the second in a series documenting patterns for professional software developers.
These patterns capture solutions to a plethora of recurring problems in software design and development,
including language-specific patterns and idioms;
general- and special-purpose patterns; architectural patterns;
process and organizational patterns; expositional patterns;
and patterns for concurrent programming, distributed systems, and reactive systems.
This new collection not only reveals secrets of great software professionals
but also makes those secrets easy to apply to your own work.
The patterns presented are grouped into:
General-Purpose Patterns
Special-Purpose Patterns
Architectural Patterns
Process and Organization
Exposition
Concurrent Programming/Distributed Systems
Reactive Systems
Contents
- Tom Cargill. Localized ownership: managing dynamic objects in C++. 1996
- Ken Auer, Kent Beck. Lazy optimization: patterns for efficient Smalltalk programming. 1996
- Bobby Woolf. Partitioning Smalltalk code in ENVY/Developer components. 1996
- Peter Sommerlad. Command Processor. 1996
- Jung J. Kim, Kevin M. Benner. Implementation patterns for the Observer pattern. 1996
- Dirk Riehle. Patterns for encapsulating class trees. 1996
- Hans Rohnert. The Proxy design pattern revisited. 1996
- Alexander S. Ran. MOODS: Models for Object-Oriented Design of State. 1996
- Jim Doble. Shopper. 1996
- Aamond Sane, Roy Campbell. Detachable Inspector/Removable cout: a structural pattern for designing transparent layered services. 1996
- Gustavo Rossi, Alejandra Garrido, Sergio Carvalho. Design patterns for object-oriented hypermedia applications. 1996
- Stephen P. Berczuk. Organizational Multiplexing: patterns for processing satellite telemetry with distributed teams. 1996
- Satish Subramanian, Wei-Tek Tsai. Backup pattern: designing redundancy in object-oriented software. 1996
- Kyle Brown, Bruce G. Whitenack. Crossing Chasms: a pattern language for Object-RDBMS. 1996
- Ralph E. Johnson. Transactions and Accounts. 1996
- Mary Shaw. Some patterns for software architectures. 1996
- Frank Buschmann. Reflection. 1996
- Brian Foote, Joseph Yoder. Evolution, Architecture, and Metamorphosis. 1996
- Alistair Cockburn. Prioritizing forces in software design. 1996
- Allen Hopley. Decision deferral and capture pattern language. 1996
- Neil B. Harrison. Organizational patterns for teams. 1996
- Martin Fowler. Accountability and organizational structures. 1996
- Ward Cunningham. EPISODES: a pattern language of competitive development. 1996
- Dana L. G. Anthony. Patterns for classroom education. 1996
- Todd A. Coram. Demo Prep: a pattern language for the preparation of software demonstrations. 1996
- Robert Orenstein. A pattern language for an essay-based web site. 1996
- Douglas C. Schmidt, Charles D. Cranor. Half-Sync/Half-Async: an architectural pattern for efficient and well-structured concurrent I/O. 1996
- Aamond Sane, Roy Campbell. Resource Exchanger: a behavioral pattern for low-overhead concurrent resource management. 1996
- Peter Sommerlad, Michael Stal. The Client-Dispatch-Server design pattern. 1996
- R. Greg Lavender, Douglas C. Schmidt. Active Object: an object behavioral pattern for concurrent programming. 1996
- Paul E. McKenney. Selecting locking designs for parallel programs. 1996
- Amund Aarsten, Giuseppe Menga, Luca Mosconi. Object-oriented design patterns in reactive systems. 1996
- Michael (2) Adams, James O. Coplien, Robert Gamoke, Robert Hanmer, Fred Keeve, Keith Nicodemus. Fault-tolerant telecommunication system patterns. 1996
- William C. Wake, B. Douglas Wake, Edward A. Fox. Improving responsiveness in interactive applications using queues. 1996
- Gerard Meszaros. A pattern language for improving the capacity of reactive systems. 1996