Design Patterns Explained: A New Perspective on Object-Oriented Design, 2nd Edition
- By Alan Shalloway, James R. Trott
- Published Oct 12, 2004 by Addison-Wesley Professional. Part of the Software Patterns Series series.
- Copyright 2005
- Dimensions: 7x9-1/4
- Pages: 480
- Edition: 2nd
- ISBN-10: 0-321-24714-0
- ISBN-13: 978-0-321-24714-8
Register your product to gain access to bonus material or receive a coupon.
Product Author Bios
Alan Shalloway is founder, CEO, and principal consultant of Net Objectives, an object-oriented consulting and training organization. An object-oriented consultant and software developer for over 20 years, he is a frequent speaker at leading development conferences, including SD Expo, Java One, OOP, and OOPSLA. He is a certified Scrum master. He is co-author of An Introduction to XML and its Family of Technologies. Shalloway holds a master's degree in computer science from MIT.
James R. Trott currently works as a senior consultant for a large financial institution in the Pacific Northwest. He has used object-oriented and pattern-based analysis techniques throughout his 20-year career in knowledge management and knowledge engineering. He holds a master of science in applied mathematics, an MBA, and a master of arts in intercultural studies.
© Copyright Pearson Education. All rights reserved.
"One of the great things about the book is the way the authors explain concepts very simply using analogies rather than programming examples–this has been very inspiring for a product I'm working on: an audio-only introduction to OOP and software development."
"...I would expect that readers with a basic understanding of object-oriented programming and design would find this book useful, before approaching design patterns completely. Design Patterns Explained complements the existing design patterns texts and may perform a very useful role, fitting between introductory texts such as UML Distilled and the more advanced patterns books."
Leverage the quality and productivity benefits of patterns–without the complexity! Design Patterns Explained, Second Edition is the field's simplest, clearest, most practical introduction to patterns. Using dozens of updated Java examples, it shows programmers and architects exactly how to use patterns to design, develop, and deliver software far more effectively.
You'll start with a complete overview of the fundamental principles of patterns, and the role of object-oriented analysis and design in contemporary software development. Then, using easy-to-understand sample code, Alan Shalloway and James Trott illuminate dozens of today's most useful patterns: their underlying concepts, advantages, tradeoffs, implementation techniques, and pitfalls to avoid. Many patterns are accompanied by UML diagrams.
Building on their best-selling First Edition, Shalloway and Trott have thoroughly updated this book to reflect new software design trends, patterns, and implementation techniques. Reflecting extensive reader feedback, they have deepened and clarified coverage throughout, and reorganized content for even greater ease of understanding. New and revamped coverage in this edition includes
- Better ways to start "thinking in patterns"
- How design patterns can facilitate agile development using eXtreme Programming and other methods
- How to use commonality and variability analysis to design application architectures
- The key role of testing into a patterns-driven development process
- How to use factories to instantiate and manage objects more effectively
- The Object-Pool Pattern–a new pattern not identified by the "Gang of Four"
- New study/practice questions at the end of every chapter
Gentle yet thorough, this book assumes no patterns experience whatsoever. It's the ideal "first book" on patterns, and a perfect complement to Gamma's classic Design Patterns. If you're a programmer or architect who wants the clearest possible understanding of design patterns–or if you've struggled to make them work for you–read this book.
29 of 29 people found the following review helpful
Nice option for getting started correctly with patterns...,
This review is from: Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) (Paperback)Trying to understand design patterns based on most texts can be as painful as poking yourself in the eye. The book Design Patterns Explained - A New Perspective on Object-Oriented Design (2nd Edition) by Alan Shalloway and James R. Trott is considerably easier on your eye and your pain threshold...
Part 1 - An Introduction to Object-Oriented Software Development: The Object-Oriented Paradigm; The UML - The Unified Modeling Language
Part 2 - The Limitations of Traditional Object-Oriented Design: A Problem That Cries Out for Flexible Code; A Standard Object-Oriented Solution
Part 3 - Design Patterns: An Introduction to Design Patterns; The Facade Pattern; The Adapter Pattern; Expanding Our Horizons; The Strategy Pattern; The Bridge Pattern; The Abstract Factory Pattern
Part 4 - Putting It All Together - Thinking In Patterns: How Do Experts Design?; Solving the CAD/CAM Problem with Patterns
Part 5 - Toward a... Read more
47 of 51 people found the following review helpful
even better than the first and deals with current issues too,
This review is from: Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) (Paperback)I read the first edition of the book and was greatly pleased by it. I loved the way it described the reasons patterns were good. In other words, although it clearly explained the patterns in the book, it also explained the underlying approach used by the people who wrote the software that later became described as patterns. The book helped me think like these developers instead of just using solutions they had come up with.
I also liked the way the authors showed how to use the patterns in the real world. I had always thought you used the patterns as solutions to recurring problems. However, the authors described how the patterns were really about a new way to think of the problem you had to solve.
As good as the first edition was, however, it left some gaps. In particular, while the domain analysis approach they espouse called commonality - variability analysis looks great, not enough information on how to actually use it was presented. Also, as XP has... Read more
16 of 17 people found the following review helpful
Great introduction to design patterns,
This review is from: Design Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition) (Paperback)I already had an understanding of design patterns and OO design principals when I read this book (my review of the original GoF Design Patterns is somewhere on Amazon.com).
Honestly, when my friend suggested I read it I snickered: perhaps such a simple book could help him, but I already understood patterns.
But the book did a really nice job of explaining patterns. I'd be lying if I said it didn't help my understanding of some classic patterns. And I appreciated the references to the original Design Pattners book, which was written for a very technical audience and, accordingly, can be hard to understand for more novice developers.
So I'd disagree with the other reviewer who suggested just getting the GoF book. It's hard to follow, with very dated examples. I can't say about his Head First recommendation.
The book could be improved. Perhaps fewer pages comparing system architecture to structural architecture.
But overall, a... Read more
› See all 54 customer reviews...
Online Sample Chapters
Table of Contents
I. AN INTRODUCTION TO OBJECT-ORIENTED SOFTWARE DEVELOPMENT.
1. The Object-Oriented Paradigm.
Before the Object-Oriented Paradigm: Functional Decomposition.
The Problem of Requirements.
Dealing with Changes: Using Functional Decomposition.
Dealing with Changing Requirements.
The Object-Oriented Paradigm.
Object-Oriented Programming in Action.
Special Object Methods.
2. The UML-The Unified Modeling Language.
What Is the UML?
Why Use the UML?
The Class Diagram.
II. THE LIMITATIONS OF TRADITIONAL OBJECT-ORIENTED DESIGN.
3. A Problem That Cries Out for Flexible Code.
Extracting Information from a CAD/CAM System.
Understand the Vocabulary.
Describe the Problem.
The Essential Challenges and Approaches.
4. A Standard Object-Oriented Solution.
Solving with Special Cases.
III. DESIGN PATTERNS.
5. An Introduction to Design Patterns.
Design Patterns Arose from Architecture and Anthropology.
Moving from Architectural to Software Design Patterns.
Why Study Design Patterns?
Other Advantages of Studying Design Patterns.
6. The Facade Pattern.
Introducing the Facade Pattern.
Learning the Facade Pattern.
Field Notes: The Facade Pattern.
Relating the Facade Pattern to the CAD/CAM Problem.
7. The Adapter Pattern.
Introducing the Adapter Pattern.
Learning the Adapter Pattern.
Field Notes: The Adapter Pattern.
Relating the Adapter Pattern to the CAD/CAM Problem.
8. Expanding Our Horizons.
Objects: The Traditional View and the New View.
Encapsulation: The Traditional View and the New View.
Find What Is Varying and Encapsulate It.
Commonality and Variability Analysis and Abstract Classes.
The Qualities of Agile Coding.
9. The Strategy Pattern.
An Approach to Handling New Requirements.
The International E-Commerce System Case Study: Initial Requirements.
Handling New Requirements.
The Strategy Pattern.
Field Notes: Using the Strategy Pattern.
10. The Bridge Pattern.
Introducing the Bridge Pattern.
Learning the Bridge Pattern: An Example.
An Observation About Using Design Patterns.
Learning the Bridge Pattern: Deriving It.
The Bridge Pattern in Retrospect.
Field Notes: Using the Bridge Pattern.
11. The Abstract Factory Pattern.
Introducing the Abstract Factory Pattern.
Learning the Abstract Factory Pattern: An Example.
Learning the Abstract Factory Pattern: Implementing It.
Field Notes: The Abstract Factory Pattern.
Relating the Abstract Factory Pattern to the CAD/CAM Problem.
IV. PUTTING IT ALL TOGETHER: THINKING IN PATTERNS.
12. How Do Experts Design?
Building by Adding Distinctions.
13. Solving the CAD/CAM Problem with Patterns.
Review of the CAD/CAM Problem.
Thinking in Patterns.
Thinking in Patterns: Step 1.
Thinking in Patterns: Step 2a.
Thinking in Patterns: Step 2b.
Thinking in Patterns: Step 2c.
Thinking in Patterns: Steps 2a and 2b Repeated (Facade).
Thinking in Patterns: Steps 2a and 2b Repeated (Adapter).
Thinking in Patterns: Steps 2a and 2b Repeated (Abstract Factory).
Thinking in Patterns: Step 3.
Comparison with the Previous Solution.
V. TOWARD A NEW PARADIGM OF DESIGN.
14. The Principles and Strategies of Design Patterns.
The Open-Closed Principle.
The Principle of Designing from Context.
The Principle of Encapsulating Variation.
Abstract Classes vs. Interfaces.
The Principle of Healthy Skepticism.
15. Commonality and Variability Analysis.
Commonality and Variability Analysis and Application Design.
Solving the CAD/CAM Problem with CVA.
16. The Analysis Matrix.
In the Real World: Variations.
The International E-Commerce System Case Study: Handling Variation.
17. The Decorator Pattern.
A Little More Detail.
The Decorator Pattern.
Applying the Decorator Pattern to the Case Study.
Another Example: Input/Output.
Field Notes: Using the Decorator Pattern.
The Essence of the Decorator Pattern.
VI. OTHER VALUES OF PATTERNS.
18. The Observer Pattern.
Categories of Patterns.
More Requirements for the International E-Commerce Case Study.
The Observer Pattern.
Applying the Observer to the Case Study.
Field Notes: Using the Observer Pattern.
19. The Template Method Pattern.
More Requirements for the International E-Commerce Case Study.
The Template Method Pattern.
Applying the Template Method to the International E-Commerce Case Study.
Using the Template Method Pattern to Reduce Redundancy.
Field Notes: Using the Template Method Pattern.
20. Lessons from Design Patterns: Factories.
The Universal Context Revisited.
Factories Follow Our Guidelines.
Limiting the Vectors of Change.
Another Way to Think About It.
Different Roles of Factories.
21. The Singleton Pattern and the Double-Checked Locking Pattern.
Introducing the Singleton Pattern.
Applying the Singleton Pattern to the Case Study.
A Variant: The Double-Checked Locking Pattern.
Field Notes: Using the Singleton and Double-Checked Locking Patterns.
22. The Object Pool Pattern.
A Problem Requiring the Management of Objects.
The Object Pool Pattern.
Observation: Factories Can Do Much More Than Instantiation.
23. The Factory Method Pattern.
More Requirements for the Case Study.
The Factory Method Pattern.
Factory Method Pattern and Object-Oriented Languages.
Field Notes: Using the Factory Method Pattern.
24. Summary of Factories.
Steps in the Software Process.
Parallels in Factories and XP Practices.
VIII. ENDINGS AND BEGINNINGS.
25. Design Patterns Reviewed: A Summation and a Beginning.
A Summary of Object-Oriented Principles.
How Design Patterns Encapsulate Implementations.
Commonality and Variability Analysis and Design Patterns.
Decomposing a Problem Domain into Responsibilities.
Patterns and Contextual Design.
Relationships Within a Pattern.
Design Patterns and Agile Coding Practices.
Design Patterns Explained: The Web Site Companion.
Recommended Reading for Java Programmers.
Recommended Reading for C++ Programmers.
Recommended Reading for COBOL Programmers.
Recommended Reading on eXtreme Programming.
Recommended Reading on General Programming.
Downloadable Sample Chapter
Download the Sample
Chapter related to this title.
Download the Index
file related to this title.
Book + eBook Bundle
Book Price $43.99
eBook Price $15.40
eBook formats included
This book includes free shipping!
This book includes free shipping!
Includes EPUB, MOBI, and PDF
About eBook Formats
This eBook includes the following formats, accessible from your Account page after purchase:
EPUBThe open industry format known for its reflowable content and usability on supported mobile devices.
MOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.
PDFThe popular standard, used most often with the free Adobe® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.
Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.