Home > Store > Software Development & Management

larger cover

Add To My Wish List

Elemental Design Patterns

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Extras
  • Reviews
  • Sample Content

Product Author Bios

Jason McC. Smith is a software researcher at the IBM T. J. Watson Research Center, where he focuses on advancing software engineering practice, numerical analysis of physical models, static and dynamic object-oriented languages, OO programming language theory, and design pattern interaction with dynamic languages. With David Stotts, he is author of Intent-Oriented Design Pattern Formalization Using SPQR. He holds a Ph.D. and M.S. in Computer Science from the University of North Carolina at Chapel Hill, as well as two patents.

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.

 

Customer Reviews

22 of 23 people found the following review helpful
5.0 out of 5 stars The link between object oriented theory and design patterns, May 2, 2012
By 
The Last Person You'd Expect (Seattle, WA United States) - See all my reviews
(VINE VOICE)   
This review is from: Elemental Design Patterns (Hardcover)
This is a very intersting book. While the catalogue of patterns that form the result of the research aren't in themselves mind-blowing, the analytical methods that Jason McC. Smith used to arrive at the elemental design patterns, and the methods he uses to reconstruct well-known patterns based on these, are worthy of close study. This book is aimed toward software designers, architects and should be of utmost interest to creators of code analysis tools, since this was the impetus for the author's study in the first place. Far from being 'another design patterns' book, this seeks to present a foundation for *all possible* OO design patterns. An appendix demonstrates the mathematics that should prove this claim.

To summarize the book's objective, Smith sought to derive the simplest possible language-agnostic patterns (e.g. 'extend method', 'instantiate class') from object-oriented principles as a way to use them as building blocks for recognizing larger constructs such as... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


26 of 28 people found the following review helpful
5.0 out of 5 stars This is a very refreshing read!!!, May 3, 2012
By 
T. Anderson (PA USA) - See all my reviews
(VINE VOICE)    (TOP 1000 REVIEWER)    (REAL NAME)   
This review is from: Elemental Design Patterns (Hardcover)
Elemental Design Patterns are the underlying core concepts of programming and software design that have remained described.

This book is a book I wish I had 15 years ago to help me put the basics of programming into their proper context. Learning how to make use of patterns over the years would have been much simpler had I read this book first.

I have listed the chapters of the book below along with the patterns in the catalog. Take a look at he names of the patterns and you can see how low level these patterns are.

Chapter 1: Introduction to Design Patterns
Chapter 2: Elemental Design Patterns
Chapter 3: Pattern Instance Notation
Chapter 4: Working with EDPs
Chapter 5: EDP Catalog
Create Object
Retrieve
Inheritance
Abstract Interface
Delegation
Redirection
Conglomeration
Recursion
Revert Method
Extend Method
Delegated Conglomeration
Redirected Recursion
Trusted... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


10 of 11 people found the following review helpful
5.0 out of 5 stars Symbology can be crucial, June 12, 2012
Amazon Verified Purchase(What's this?)
This review is from: Elemental Design Patterns (Hardcover)
Much like Linear Algebra introduces and develops a streamlined symbology for many-equation algebra, the author here introduces 'PIN', a method of encapsulating UML and collapsing the pattern-internals to focus on the -external- connections of the patterns.

This elimination of visual complexity - while retaining the ability to 'zoom in' for the details - provides an environment better suited to actually exploring vast swaths of code in search of canonical patterns. Or antipatterns.

The author proceeds to use his SPQR mechanistic pattern-seeking code in an attempt to identify individual 'Elemental Design Patterns'. That is - the indivisible core elements of the standard higher-level design patterns. In a fashion that is programming language agnostic.

Although this work does not comprehensively explore the core canonical design patterns, it is still a solid introduction to the entire area that does not sink directly into the morass of extensive UML.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 8 customer reviews...

Online Sample Chapter

Introduction to Elemental Design Patterns

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

Sample Pages

Download the sample pages (includes Chapter 1 and Index)

 
Best Value

Book + eBook Bundle  $80.98  $48.59

Book Price $35.99
eBook Price $12.60
eBook formats included

Buy

This book includes free shipping!

Buy

Book  $44.99  $35.99

Usually ships in 24 hours.

This book includes free shipping!

Buy

eBook (Watermarked)  $35.99  $28.79

Includes EPUB, MOBI, and PDF
About eBook Formats

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe 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.

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

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.