Elemental Design Patterns (Paperback)

  • ISBN13:


  • ISBN10:


  • Edition: 1st
  • Format: Paperback
  • Copyright: 2017-08-31
  • Publisher: Addison-Wesley Professional

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $26.99 Save up to $6.75
  • Rent Book $20.24
    Add to Cart Free Shipping


Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
  • The Rental copy of this book is not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.


2012 Jolt Award Finalist!


Even experienced software professionals find it difficult to apply patterns in ways that deliver substantial value to their organizations. In Elemental Design Patterns, Jason McC. Smith addresses this problem head-on, helping developers harness the true power of patterns, map them to real software implementations more cleanly and directly, and achieve far better results. Part tutorial, part example-rich cookbook, this resource will help developers, designers, architects, and analysts successfully use patterns with a wide variety of languages, environments, and problem domains. Every bit as important, it will give them a deeper appreciation for the work they’ve chosen to pursue.


Smith presents the crucial missing link that patterns practitioners have needed: a foundational collection of simple core patterns that are broken down to their core elements. If you work in software, you may already be using some of these elemental design patterns every day. Presenting them in a comprehensive methodology for the first time, Smith names them, describes them, explains their importance, helps you compare and choose among them, and offers a framework for using them together. He also introduces an innovative Pattern Instance Notation diagramming system that makes it easier to work with patterns at many levels of granularity, regardless of your goals or role.


If you’re new to patterns, this example-rich approach will help you master them piece by piece, logically and intuitively. If you’re an experienced patterns practitioner, Smith follows the Gang of Four format you’re already familiar with, explains how his elemental patterns can be composed into conventional design patterns, and introduces highly productive new ways to apply ideas you’ve already encountered. No matter what your level of experience, this infinitely practical book will help you transform abstract patterns into high-value solutions.


Author Biography

Jason McC. Smith received his Ph.D. in computer science in 2005 from the University of North Carolina at Chapel Hill, where the Elemental Design Patterns were born as part of the System for Pattern Query and Recognition (SPQR) project. He then spent four years at IBM Watson Research and had the opportunity to apply the lessons of SPQR and the EDP catalog and compositional approach to immense bodies of software, both legacy and modern. Dr. Smith is currently senior research scientist at The Software Revolution, Inc., in Kirkland, WA, where he continues to refine the EDP catalog and look for ways to enhance the company’s goal of automated modernization and transformation of legacy systems.

Table of Contents

Figures         xi

Tables         xv

Listings         xvii

Foreword         xix

Preface         xxi

Acknowledgments         xxiii

About the Author         xxv


Chapter 1: Introduction to Design Patterns         1

1.1 Tribal Musings   5

1.2 Art or Science?   9


Chapter 2: Elemental Design Patterns         13

2.1 Background   14

2.2 The Where, the Why, the How   17

2.3 Core EDPs   42

2.4 Conclusion   44


Chapter 3: Pattern Instance Notation         45

3.1 Basics   45

3.2 The PINbox   49

3.3 Conclusion 65


Chapter 4: Working with EDPs         67

4.1 Composition of Patterns   68

4.2 Recreating Decorator   77

4.3 Refactoring   91

4.4 The Big Picture   101

4.5 Why You May Want to Read the Appendix   105

4.6 Advanced Topics   108

4.7 Conclusion   112


Chapter 5: EDP Catalog         115

Create Object   117

Retrieve   126

Inheritance   130

Abstract Interface   140

Delegation   145

Redirection   151

Conglomeration   159

Recursion   165

Revert Method   172

Extend Method   181

Delegated Conglomeration   187

Redirected Recursion   193

Trusted Delegation   200

Trusted Redirection   209

Deputized Delegation   216

Deputized Redirection   222


Chapter 6: Intermediate Pattern Compositions         229

Fulfill Method   231

Retrieve New   235

Retrieve Shared   240

Objectifier   244

Object Recursion   251


Chapter 7: Gang of Four Pattern Compositions         259

7.1 Creational Patterns   260

7.2 Structural Patterns   265

7.3 Behavioral Patterns   273

7.4 Conclusion   279


Appendix A: Rho- Calculus          281

A.1 Reliance Operators   282

A.2 Transitivity and Isotopes   285

A.3 Similarity   286

A.4 EDP Formalisms   287

A.5 Composition and Reduction Rules   291

A.6 Pattern Instance Notation and Roles   293

A.7 EDP Definitions   295

A.8 Intermediate Pattern Definitions   308

A.9 Gang of Four Pattern Definitions   313


Bibliography          321

Index         325

Rewards Program

Write a Review