Alan Holub takes coders deep into the reality of Gang-of-Four design patterns, those reusable guides to common object-oriented design problems. He deconstructs two significant software programs (Mel Conway's "Game of Life" and a SQL interpreter) to demonstrate how design patterns work and interact in complex ways, share classes with other patterns, and have pros and cons. Each of the three primary design pattern categories, creational, structural, and behavioral are discussed and illustrated.
- Discover what design patterns are and when they are used in the Agile environment
- Exercise better control over object creation using the Factory, Builder, Singleton, Abstract, and Prototype design patterns
- Identify easier ways to realize relationships between entities using the Adapter, Decorator, Bridge, Facade, Composite, Flyweight, and Proxy design patterns
- Recognize common communication patterns between objects using the Template Method, Command, Chain of Responsibility, Iterator, Observer, Visitor, Mediator, Memento, Strategy, and State design patterns
- Examine the Active Object design pattern, an architectural solution to problems inherent in multi-threading
- Understand how the strengths and weaknesses of design patterns play off one another
- Learn how a given pattern can be implemented in various ways
Alan Holub is one of the world’s top experts in object-oriented design techniques. His clients include Autodesk, Microsoft, Stanford Linear Accelerator, Lawrence Berkeley Laboratory, Genentech, Sybase, and many more. He describes himself as fully buzzword compliant, which is another way of saying that there isn’t a programming language, acronym, or meme existent that he hasn’t used, wrestled with, taught or blogged about during his thirty-six year software development journey.
About the O’Reilly Software Architecture Series
Clearing a path from developer to architect and enriching that path once you arrive.
Software architecture is a fast-moving, multidisciplinary subject where entire suites of "best practices" become obsolete practically overnight. No single path or curriculum exists, and different types of architecture—application, integration, enterprise—require different subject emphasis. Whether you’re at the outset of a career as an architect or in the midst of such a career, series editor Neal Ford has curated this collection of tools and guides for aspiring and seasoned architects alike.