HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
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.
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