Design Patterns: Elements of Reusable Object-Oriented Software

Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

These four top-notch authors show how object-oriented systems exhibit recurring patterns and structures of objects that solve particular design problems, allowing designers to reuse successful designs and architectures without having to rediscover the design solutions. Central to this book is a catalog of 23 design patterns that have seen successful practical application and are representative of good object-oriented design. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern in a larger design.

ISBN 0-201-63442-2 Hardback 416 pages ©1995

The Design Patterns Smalltalk Companion

Sherman Alpert, Kyle Brown, and Bobby Woolf

In this new book, intended as a language companion to Design Patterns, noted Smalltalk and design patterns experts implement the 23 design patterns using Smalltalk code. Using the same successful format as Design Patterns, this book tailors the topic of design patterns to the Smalltalk programmer—no other book offers this. The authors have worked closely with the Design Patterns authors to ensure that this companion volume is held to the same high quality standards that made the original a bestseller. The full source code will be available on Addison-Wesley's web site.

ISBN 0-201-18462-1 Hardback 448 pages ©1998

Analysis Patterns: Reusable Object Models

Martin Fowler

> Analysis Patterns is an important contribution to the growing patterns literature. It captures profound object modeling expertise from different domains as a catalog of patterns. These domain patterns will help you solve challenging modeling problems across different domains.

> —Erich Gamma, Technical Director, Object Technology International.

Martin Fowler shares with you his wealth of object modeling experience and his keen eye for solving repeating problems and transforming the solutions into reusable models. Analysis Patterns provides a catalog of patterns that have emerged in a wide range of domains, including trading, measurement, accounting, and organizational relationships.

ISBN 0-201-89542-0 Hardback 672 pages ©1997

Concurrent Programming in Java™: Design Principles and Patterns

Doug Lea

Serious Java programmers interested in using this rich language to the fullest need to master thread programming to significantly enhance their ability to create high-performance Java applications. Taking a design pattern approach, this book offers numerous standard design techniques for creating and implementing Java structures that solve common concurrent programming challenges. You will learn how to initiate, control, and coordinate concurrent activities using the Java constructs `java.lang.Thread`, the keywords synchronized and volatile, and the methods wait, notify, and notifyAll. In addition, you will find detailed coverage of all aspects of thread programming, including such topics as containment and synchronization, deadlocks and conflicts, state-dependent action, control, handling user services, flow, and coordinated interaction. Code examples throughout help clarify the subtleties of the concurrent programming concepts discussed.

ISBN 0-201-69581-2 Paperback 352 pages ©1997

Pattern Languages of Program Design

Edited by James O. Coplien and Douglas C. Schmidt

This book brings you the expertise and creativity of leaders in the design patterns field, including James Coplien, Douglas Schmidt, and Ward Cunningham. It explores many facets of design patterns and reveals how useful this technique can be in a wide range of fields and industries—client/server programming, software design, distributed and parallel processing, financial services, software reuse, and interface design.

ISBN 0-201-60734-4 Paperback 576 pages ©1995

Pattern Languages of Program Design 2

John M. Vlissides, James O. Coplien, and Norman L. Kerth

This volume, with contributions from the biggest names in the patterns community, is the second in a series documenting patterns for professional software developers. This new collection not only reveals the secrets of great software professionals, but also makes those secrets easy to apply.

ISBN 0-201-89527-7 Paperback 624 pages ©1996

Pattern Languages of Program Design 3

Robert Martin, Dirk Riehle, and Frank Buschmann

This third volume is the first to include international submissions, giving the editors even more high-quality essays from which to choose. This new collection builds upon the popular appeal of the first two volumes, keeping developers up-to-date on the latest uses and implementations of patterns.

ISBN 0-201-31011-2 Paperback 688 pages ©1998