- Series: Software Patterns Series
- Paperback: 368 pages
- Publisher: Addison-Wesley Professional; 1st edition (July 9, 2001)
- Language: English
- ISBN-10: 0201715945
- ISBN-13: 978-0201715941
- Product Dimensions: 7.4 x 0.7 x 9.2 inches
- Shipping Weight: 13.6 ounces (View shipping rates and policies)
- Average Customer Review: 127 customer reviews
- Amazon Best Sellers Rank: #1,841,586 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Design Patterns Explained: A New Perspective on Object-Oriented Design 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
There is a newer edition of this item:
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
What other items do customers buy after viewing this item?
Customers who bought this item also bought
From the Back Cover
"...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."
Design Patterns Explained: A New Perspective on Object-Oriented Design draws together the principles of object-oriented programming with the power of design patterns to create an environment for robust and reliable software development. Packed with practical and applicable examples, this book teaches you to solve common programming problems with patterns--and explains the advantages of patterns for modern software design.
Beginning with a complete overview of the fundamentals of patterns, Design Patterns Explained stresses the importance of analysis and design. The authors clearly demonstrate how patterns can facilitate the overall development process. Throughout the book, key object-oriented design principles are explained, along with the concepts and benefits behind specific patterns. With illustrative examples in C++ and Java, the book demystifies the "whys," "why nots," and "hows" of patterns and explains pattern implementation.
Key topics covered include:
- New perspectives on objects, encapsulation, and inheritance
- The idea of design patterns, their origins, and how they apply in the discipline of software design
- Pattern-based, object-oriented software development using the Unified Modeling Language (UML)
- How to implement critical patterns--Strategy, Observer, Bridge, Decorator, and many more
- Commonality/Variability Analysis and design patterns, and how they aid in understanding abstract classes
From analysis to implementation, Design Patterns Explained allows you to unleash the true potential of patterns and paves the path for improving your overall designs. This book provides newcomers with a genuinely accurate and helpful introduction to object-oriented design patterns.
About the Author
Alan Shalloway is the founder, CEO, and principal consultant of Net Objectives, an object-oriented consulting/training organization. He has a master's degree in computer science from MIT, over thirty years of experience in software development, and several years of experience in mentoring and training. He spends much of his time offering courses in design patterns, OOA, OOD, and lightweight methodologies, and building advanced software for both his own company and his clients.
James R. Trott is a senior consultant for a large software company in the Pacific Northwest and formerly was a senior engineer for a large aerospace company. He holds a master of science in applied mathematics, an MBA, and a master of arts in intercultural studies. He has spent seventeen years in the field of artificial intelligence, knowledge modeling, and knowledge management and is an expert in using cognitive design patterns and the KADS methodology.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
On the other hand, this book can be a little tedious because it is written for all levels of programming experience, so at times I felt that it was a bit wordy and that a good 40-50 pages could have been trimmed.
I was both happy and disappointed to read the book. I was happy because I found out that I had already used most of the patterns and OOP techniques described in the book but just didn't know what they were called, and therefore I wasn't behind the curve! :-) The flip side, of course, is that I was disappointed not to have learned any new earth shattering techniques.
But overall, the book remains a worthwhile read. Software development is getting more complex all the time. Using design patterns formalizes common techniques in use, and more importantly, gives them names and context. This raises the level of discussion among developers, especially at the conceptual level. A further plus is the authors' introduction to UML and their use of it throughout the book.
I won't go into details about the contents of the book. Other reviewers have already done a superb job of this.
BTW, Metrowerks' PowerPlant users will recognize a number of the patterns described in this book.
First, the benefits. Lots of beginners like the informal and case-oriented approach the authors take. This reads a lot less like someone's PhD dissertation, and shows Java and C++ samples to explain many patterns and concepts. (For some, translating a Smalltalk or even C++ example into Java is difficult enough for the real topic of discussion to get lost.)
It also uses the sustained example of a CAD/CAM system to show specific, concrete cases where a pattern might apply. This prolonged example means the reader doesn't have to switch gears to a new application context every time a pattern is put to work, and gives a chance for interactions between multiple patterns to emerge.
As near as I can tell, this book came from the class notes of a course taught by one of the authors. That explains the many additional hints about good programming and tips on OO style. It also explains the idiosyncratic order in which topics appear - although it stays close to the content of Gamma et al., it certainly does not stay close to that book's organization.
That's where I think Shalloway and Trott start to falter. The organization of this book seems to be built around the CAD/CAM example, not around any inherent properties of the patterns or logical connection to OO topics. That's fine, until you go to an application different from theirs. The focus on specific examples is also a weakness. Design Patterns are too broad to be defined by any one implementation. That means that any example, while it represents one way to apply a pattern, fails to represent a half-dozen others. The literal-minded student comes away with much too narrow an idea of how the pattern can be applied. I'm not sure that replacing the generality of Gamma et al. with exact point solutions is an improvement.
Still, enough students tell me this book helps that I believe them. There's a large body of DP literature out there, and some is pretty awful. I find this book undistinguished, but it's on my list of references for beginners who struggle with DP concepts. This may help clarify Gamma et al., but doesn't replace it.