Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 1.064 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
1.064
Dung lượng
5,13 MB
Nội dung
Design Patterns Explained A New Perspective on Object-Oriented Design Second Edition By Alan Shalloway, James R Trott Publisher : Addison Wesley Professional Pub Date : October 12, 2004 ISBN : 0-321-24714-0 Pages : 480 Leverage the quality and productivity benefits of patternswithout the complexity! Design Patterns Explained, Second Edition is the field's simplest, clearest, most practical introduction to patterns Using dozens of updated Java examples, it shows programmers and architects exactly how to use patterns to design, develop, and deliver software far more effectively You'll start with a complete overview of the fundamental principles of patterns, and the role of object-oriented analysis and design in contemporary software development Then, using easy-to-understand sample code, Alan Shalloway and James Trott illuminate dozens of today's most useful patterns: their underlying concepts, advantages, tradeoffs, implementation techniques, and pitfalls to avoid Many patterns are accompanied by UML diagrams Table of Contents • Index • Building on their best-selling First Edition, Shalloway and Trott have thoroughly updated this book to reflect new software design trends, patterns, and implementation techniques Reflecting extensive reader feedback, they have deepened and clarified coverage throughout, and reorganized content for even greater ease of understanding New and revamped coverage in this edition includes Better ways to start "thinking in patterns" How design patterns can facilitate agile development using eXtreme Programming and other methods How to use commonality and variability analysis to design application architectures The key role of testing into a patterns-driven development process How to use factories to instantiate and manage objects more effectively The Object-Pool Patterna new pattern not identified by the "Gang of Four" New study/practice questions at the end of every chapter Gentle yet thorough, this book assumes no patterns experience whatsoever It's the ideal "first book" on patterns, and a perfect complement to Gamma's classic Design Patterns If you're a programmer or architect who wants the clearest possible understanding of design patternsor if you've struggled to make them work for youread this book Design Patterns Explained A New Perspective on Object-Oriented Design Second Edition By Alan Shalloway, James R Trott Publisher : Addison Wesley Professional Pub Date : October 12, 2004 Table of ISBN : 0-321-24714-0 • Contents Pages : 480 • Index Copyright Praise for Design Patterns Explained, Second Edition: The Software Patterns Series Titles in the series: Preface From Object Orientation to Patterns to True Object Orientation From Artificial Intelligence to Patterns to True Object Orientation A Note About Conventions Used in This Book Feedback New in the Second Edition Acknowledgments Part I An Introduction to Object-Oriented Software Development Chapter 1 The Object-Oriented Paradigm Overview Before the Object-Oriented Paradigm: Functional Decomposition The Problem of Requirements Dealing with Changes: Using Functional Decomposition Dealing with Changing Requirements The Object-Oriented Paradigm Object-Oriented Programming in Action Special Object Methods Summary Review Questions Chapter 2 The UMLThe Unified Modeling Language Overview What Is the UML? Why Use the UML? The Class Diagram Interaction Diagrams Summary Review Questions Part II The Limitations of Traditional Object-Oriented Design Chapter 3 A Problem That Cries Out for Flexible Code Overview Extracting Information from a CAD/CAM System Understand the Vocabulary Describe the Problem The Essential Challenges and Approaches Summary Review Questions Chapter 4 A Standard Object-Oriented Solution Overview Solving with Special Cases Summary Review Questions Part III Design Patterns Chapter 5 An Introduction to Design Patterns Overview Design Patterns Arose from Architecture and Anthropology Moving from Architectural to Software Design Patterns Why Study Design Patterns? Other Advantages of Studying Design Patterns Summary Review Questions Chapter 6 The Facade Pattern Overview Introducing the Facade Pattern Learning the Facade Pattern Field Notes: The Facade Pattern Relating the Facade Pattern to the CAD/CAM Problem Summary Review Questions Chapter 7 The Adapter Pattern Overview Introducing the Adapter Pattern Learning the Adapter Pattern Field Notes: The Adapter Pattern Relating the Adapter Pattern to the CAD/CAM Problem Summary Review Questions Chapter 8 Expanding Our Horizons Overview Objects: The Traditional View and the New View Encapsulation: The Traditional View and the New View Find What Is Varying and Encapsulate It Commonality and Variability Analysis and Abstract Classes The Qualities of Agile Coding Summary Review Questions Chapter 9 The Strategy Pattern Overview An Approach to Handling New Requirements The International E-Commerce System Case Study: Initial Requirements Handling New Requirements The Strategy Pattern Field Notes: Using the Strategy Pattern Summary Review Questions Chapter 10 The Bridge Pattern Overview Introducing the Bridge Pattern Learning the Bridge Pattern: An Example An Observation About Using Design Patterns Learning the Bridge Pattern: Deriving It The Bridge Pattern in Retrospect Field Notes: Using the Bridge Pattern Summary Review Questions Chapter 11 The Abstract Factory Pattern Overview Introducing the Abstract Factory Pattern Learning the Abstract Factory Pattern: An Example Learning the Abstract Factory Pattern: Implementing It Field Notes: The Abstract Factory Pattern Relating the Abstract Factory Pattern to the CAD/CAM Problem Summary Review Questions Part IV Putting It All Together: Thinking in Patterns Chapter 12 How Do Experts Design? Overview Building by Adding Distinctions Summary Review Questions Chapter 13 Solving the CAD/CAM Problem with Patterns Overview Review of the CAD/CAM Problem Thinking in Patterns Thinking in Patterns: Step 1 Thinking in Patterns: Step 2a Thinking in Patterns: Step 2b Thinking in Patterns: Step 2c Thinking in Patterns: Steps 2a and 2b Repeated (Facade) Thinking in Patterns: Steps 2a and 2b Repeated (Adapter) Thinking in Patterns: Steps 2a and 2b Repeated (Abstract Factory) Thinking in Patterns: Step 3 Comparison with the Previous Solution Summary Review Questions Part V Toward a New Paradigm of Design Chapter 14 The Principles and Strategies of Design Patterns Overview The Open-Closed Principle The Principle of Designing from Context The Principle of Encapsulating Variation Abstract Classes vs Interfaces The Principle of Healthy Skepticism Summary Review Questions Chapter 15 Commonality and Variability Analysis Overview Commonality and Variability Analysis and Application Design Solving the CAD/CAM Problem with CVA Summary Review Questions Chapter 16 The Analysis Matrix Overview In the Real World: Variations The International E-Commerce System Case Study: Handling Variation Field Notes Summary Review Questions Chapter 17 The Decorator Pattern Overview A Little More Detail The Decorator Pattern Applying the Decorator Pattern to the Case Study Another Example: Input/Output Field Notes: Using the Decorator Pattern The Essence of the Decorator Pattern Summary Review Questions Part VI Other Values of Patterns Chapter 18 The Observer Pattern Overview Categories of Patterns More Requirements for the International E-Commerce Case Study The Observer Pattern Applying the Observer to the Case Study Field Notes: Using the Observer Pattern Summary Review Questions Chapter 19 The Template Method Pattern Overview More Requirements for the International E-Commerce Case Study The Template Method Pattern Applying the Template Method to the International E-Commerce Case Study Using the Template Method Pattern to Reduce Redundancy Field Notes: Using the Template Method Pattern Summary Review Questions Part VII Factories Chapter 20 Lessons from Design Patterns: Factories Overview Factories The Universal Context Revisited Factories Follow Our Guidelines Limiting the Vectors of Change Another Way to Think About It Different Roles of Factories Field Notes Summary Review Questions Chapter 21 The Singleton Pattern and the Double-Checked Locking Pattern Overview Introducing the Singleton Pattern Applying the Singleton Pattern to the Case Study A Variant: The Double-Checked Locking Pattern Reflections Field Notes: Using the Singleton and Double-Checked Locking Patterns Summary Review Questions Chapter 22 The Object Pool Pattern Overview A Problem Requiring the Management of Objects The Object Pool Pattern Observation: Factories Can Do Much More Than Instantiation Summary Review Questions SalesTicket object 2nd 3rd 4th Scaling systems 2nd SELECT command Seniormost patterns Sequence diagram reading Shape class 2nd 3rd ShapeDataBase class Shift of responsibility Singleton pattern 2nd 3rd 4th 5th 6th 7th applying to the case study 2nd 3rd collaborating objects consequences defined field notes generic structure of how it works implementation instantiating Stateless Facades with a singleton intent 2nd key features participants/collaborators problem purpose of solution Stateful Singletons synchronizing the creation of Slot features SlotFeature class 2nd 3rd 4th Software design, applying Alexander's approach to 2nd Software development process perspectives in steps in 2nd Solution, patterns someMethod method Source and behavior objects 2nd Special features 2nd 3rd Special object methods Specialized classes 2nd Specification level, software development process 2nd 3rd Square class, display method Standard object-oriented solution 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th State diagrams State pattern Strategy pattern 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th and unit testing ConcreteStrategies consequences Context 2nd coupling between context and strategies eliminating class explosions with encapsulating business rules field notes 2nd 3rd generic structure handling new requirements 2nd 3rd 4th common excuses implementation implementing 2nd intent 2nd key features motivations of new cases and normalization, handling participants/collaborators problem solution Strategy 2nd Structural patterns 2nd Student object Sub-matrices Subclasses 2nd Superclass 2nd Swapping out systems System usage, tracking Index [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] Tax class 2nd Tax object Team communications, and design pattern study Template Method pattern 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th and elimination of duplication 2nd consequences doquery method field notes 2nd generic structure implementation intent 2nd International E-Commerce case study 2nd applying Template Method to 2nd participants/collaborators problem solution using 2nd using to reduce redundancy 2nd 3rd 4th 5th 6th 7th Test-driven development 2nd Testability 2nd 3rd Testable code Tight coupling 2nd 3rd Timeless Way of Building, The (Alexander) 2nd 3rd 4th 5th 6th Tracking system usage Type encapsulation Index [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] UML Distilled (Fowler) Unified Modeling Language (UML) defined 2nd notation for access notation for relationships reasons for using 2nd UML diagrams and their purpose Universal context for software development 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th Unwanted side effect 2nd Uses relationship Uses-a relationship USTax class 2nd 3rd Index [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] V1 features, instantiating 2nd V1 methods, implementation of V1Facade 2nd 3rd 4th V1Holes V1Imp 2nd 3rd 4th 5th 6th V1Rectangle implementation V1Slots 2nd 3rd V1System V2 features, instantiating 2nd V2 methods, implementation of V2Rectangle implementation V2Slots Variability analysis, and abstract classes 2nd 3rd 4th 5th Variations, handling 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th Visibility Visitor pattern Index [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] Weak cohesion 2nd 3rd Web site companion WelcomeLetter class Wrappers Writing Solid Code (Maguire) Index [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] XP [See eXtreme programming (XP)] Index [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] YAGNI ... distinguish their products are claimed as trademarks Where those designations appear in this book, and Addison- Wesley was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals... Data Access Patterns: Database Interactions in Object- Oriented Applications, Clifton Nock Design Patterns in C#, Steven John Metsker Design Patterns Explained: A New Perspective on Object- Oriented Design, Alan Shalloway/James R... corpsales@pearsoned.com For sales outside of the U.S., please contact: International Sales international@pearsoned.com Visit Addison- Wesley on the Web: www.awprofessional.com Library of Congress Cataloging-in-Publication Data LOC 20041 08740