Elemental Design Patterns
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.
22 of 23 people found the following review helpful
The link between object oriented theory and design patterns,
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
26 of 28 people found the following review helpful
This is a very refreshing read!!!,
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
Trusted... Read more
10 of 11 people found the following review helpful
Symbology can be crucial,
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.
› See all 8 customer reviews...
Online Sample Chapter
Table of Contents
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
Abstract Interface 140
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
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
Download the sample pages (includes Chapter 1 and Index)
Book + eBook Bundle
Book Price $35.99
eBook Price $12.60
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.