وبلاگ بلیان

Elemental Design Patterns

معرفی کتاب «Elemental Design Patterns» نوشتهٔ Jason McColm Smith، منتشرشده توسط نشر Addison-Wesley Professional در سال 2012. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.

After fifteen years, the field of design patterns is still missing a critical element: a foundation. By definition, the content of design patterns is abstract. As a result, design patterns are difficult for many to grasp well - especially for inexperienced programmers and students. While many professionals who could benefit from patterns admit that they don't fully understand them, many others don't understand patterns nearly as well as they imagine they do - resulting in systems that aren't designed as well as they should be. In Elemental Design Patterns, researcher Jason McC. Smith offers the missing foundation that software practitioners need to utilize patterns far more effectively. Smith introduces a foundational layer of patterns terminology: a collection of core patterns that can't be decomposed further. He presents these underlying basic concepts of programming clearly and concisely, in the same format as the classic "Gang of Four" patterns - thereby offering a taxonomy that virtually any developer can understand and apply. Elemental Design Patterns helps practitioners grasp the context of patterns, comprehend their true power, and map them to actual software implementations more cleanly and directly. Part tutorial, part example-rich cookbook, it will help developers gain a deeper appreciation for what they do - and successfully utilize patterns with a wide variety of languages, environments, and domains Contents 8 Figures 12 Tables 16 Listings 18 Foreword 20 Preface 22 Acknowledgments 24 About the Author 26 1 Introduction to Design Patterns 28 1.1 Tribal Musings 32 1.2 Art or Science? 36 1.2.1 Viewing Patterns as Rote 36 1.2.2 Language-Dependent Views 37 1.2.3 From Myth to Science 39 2 Elemental Design Patterns 40 2.1 Background 41 2.2 The Where, the Why, the How 44 2.2.1 Decomposition of Decorator 45 2.2.2 Down the Rabbit Hole 48 2.2.3 Context 57 2.2.4 The Design Space 60 2.3 Core EDPs 69 2.4 Conclusion 71 3 Pattern Instance Notation 72 3.1 Basics 72 3.2 The PINbox 76 3.2.1 Collapsed PINbox 76 3.2.2 Standard PINbox 78 3.2.3 Expanded PINbox 82 3.2.4 Stacked PINboxes and Multiplicity 83 3.2.5 Peeling and Coalescing 89 3.3 Conclusion 92 4 Working with EDPs 94 4.1 Composition of Patterns 95 4.1.1 Isotopes 99 4.2 Recreating Decorator 104 4.3 Refactoring 118 4.4 The Big Picture 128 4.5 Why You May Want to Read the Appendix 132 4.6 Advanced Topics 135 4.6.1 Focused Documentation and Training 135 4.6.2 Metrics 136 4.6.3 Procedural Analysis 139 4.7 Conclusion 139 5 EDP Catalog 142 Create Object 144 Retrieve 153 Inheritance 157 Abstract Interface 167 Delegation 172 Redirection 178 Conglomeration 186 Recursion 192 Revert Method 199 Extend Method 208 Delegated Conglomeration 214 Redirected Recursion 220 Trusted Delegation 227 Trusted Redirection 236 Deputized Delegation 243 Deputized Redirection 249 6 Intermediate Pattern Compositions 256 Fulfill Method 258 Retrieve New 262 Retrieve Shared 267 Objectifier 271 Object Recursion 278 7 Gang of Four Pattern Compositions 286 7.1 Creational Patterns 287 7.1.1 Abstract Factory 287 7.1.2 Factory Method 290 7.2 Structural Patterns 292 7.2.1 Decorator 292 7.2.2 Proxy 296 7.3 Behavioral Patterns 300 7.3.1 Chain of Responsibility 300 7.3.2 Template Method 302 7.4 Conclusion 306 A: ρ-Calculus 308 A.1 Reliance Operators 309 A.2 Transitivity and Isotopes 312 A.3 Similarity 313 A.4 EDP Formalisms 314 A.5 Composition and Reduction Rules 318 A.6 Pattern Instance Notation and Roles 320 A.7 EDP Definitions 322 A.7.1 Create Object 322 A.7.2 Retrieve 323 A.7.3 Inheritance 325 A.7.4 Abstract Interface 325 A.7.5 Delegation 326 A.7.6 Redirection 327 A.7.7 Conglomeration 327 A.7.8 Recursion 328 A.7.9 Revert Method 328 A.7.10 Extend Method 329 A.7.11 Delegated Conglomeration 330 A.7.12 Redirected Recursion 330 A.7.13 Trusted Delegation 331 A.7.14 Trusted Redirection 332 A.7.15 Deputized Delegation 333 A.7.16 Deputized Redirection 334 A.8 Intermediate Pattern Definitions 335 A.8.1 Fulfill Method 335 A.8.2 Retrieve New 336 A.8.3 Retrieve Shared 337 A.8.4 Objectifier 338 A.8.5 Object Recursion 339 A.9 Gang of Four Pattern Definition 340 A.9.1 Abstract Factory 340 A.9.2 Factory Method 341 A.9.3 Decorator 343 A.9.4 Proxy 344 A.9.5 Chain of Responsibility 345 A.9.6 Template Method 346 Bibliography 348 Index 352 A 352 B 352 C 352 D 353 E 354 F 355 G 355 H 356 I 356 J 356 K 356 L 356 M 356 N 357 O 357 P 357 R 358 S 359 T 360 U 360 V 360 W 360 Z 360

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.

دانلود کتاب Elemental Design Patterns