Syndetics omslagsbild
Bild från Syndetics

Design patterns explained : a new perspective on object-oriented design / Alan Shalloway, James R. Trott.

Av: Medverkande: Språk: Engelska Serie: Software patterns seriesUtgivningsuppgift: Boston : Addison-Wesley, cop. 2005Utgåva: 2. edBeskrivning: xxxvii, 429 s. illISBN:
  • 0321247140
Ämnen: DDK-klassifikation:
  • 005.117 22
Annan klassifikation:
  • Pubb
Bestånd
Exemplartyp Aktuellt bibliotek Placering Hyllsignatur Status Förfallodatum Streckkod Exemplarreservationer
Bok Biblioteket HKR Biblioteket 005.1 Shalloway Tillgänglig 11156000147562
Antal reservationer: 0

Förbättrade beskrivningar från Syndetics:

"One of the great things about the book is the way the authors explain concepts very simply using analogies rather than programming examples-this has been very inspiring for a product I'm working on: an audio-only introduction to OOP and software development."

-Bruce Eckel

"...I would expect that readers with a basic understanding of object-oriented programming and design would find this book useful, before approaching design patterns completely. Design Patterns Explained complements the existing design patterns texts and may perform a very useful role, fitting between introductory texts such as UML Distilled and the more advanced patterns books."

-James Noble

Leverage the quality and productivity benefits of patterns-without 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.

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 Pattern-a 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 patterns-or if you've struggled to make them work for you-read this book.

Innehållsförteckning levererad av Syndetics

  • Preface (p. xv)
  • From Object Orientation to Patterns to True Object Orientation (p. xvi)
  • From Artificial Intellegence to Patterns to True Object Orientation (p. xxi)
  • A Note About Conventions Used in This Book (p. xxiv)
  • Feedback (p. xxv)
  • Acknowledgments (p. xxvi)
  • Part I An Introduction to Object-Oriented Software Development (p. 1)
  • Chapter 1 The Object-Oriented Paradigm (p. 3)
  • Overview (p. 3)
  • Before The Object-Oriented Paradigm: Functional Decomposition (p. 4)
  • The Problem of Requirements (p. 6)
  • Dealing with Changes: Using Functional Decomposition (p. 7)
  • Dealing with Changing Requirements (p. 10)
  • The Object-Oriented Paradigm (p. 14)
  • Object-Oriented Programming in Action (p. 22)
  • Special Object Methods (p. 24)
  • Summary (p. 26)
  • Chapter 2 The UML--The Unified Modeling Language (p. 29)
  • Overview (p. 29)
  • What Is the UML? (p. 29)
  • Why Use the UML? (p. 31)
  • The Class Diagram (p. 31)
  • Interaction Diagrams (p. 38)
  • Summary (p. 40)
  • Part II The Limitations of Traditional Object-Oriented Design (p. 43)
  • Chapter 3 A Problem That Cries Out for Flexible Code (p. 45)
  • Overview (p. 45)
  • Extracting Information from a CAD/CAM System (p. 45)
  • Understand the Vocabulary (p. 46)
  • Describe the Problem (p. 48)
  • The Essential Challenges and Approaches (p. 51)
  • Summary (p. 55)
  • Chapter 4 A Standard Object-Oriented Solution (p. 57)
  • Overview (p. 57)
  • Solving with Special Cases (p. 57)
  • Summary (p. 65)
  • Supplement: C++ Code Examples (p. 66)
  • Part III Design Patterns (p. 69)
  • Chapter 5 An Introduction to Design Patterns (p. 71)
  • Overview (p. 71)
  • Design Patterns Arose from Architecture and Anthropology (p. 72)
  • Moving from Architectural to Software Design Patterns (p. 77)
  • Why Study Design Patterns? (p. 80)
  • Other Advantages to Studying Design Patterns (p. 84)
  • Summary (p. 86)
  • Chapter 6 The Facade Pattern (p. 87)
  • Overview (p. 87)
  • Introducing the Facade Pattern (p. 87)
  • Learning the Facade Pattern (p. 88)
  • Field Notes: The Facade Pattern (p. 91)
  • Relating the Facade Pattern to the CAD/CAM Problem (p. 92)
  • Summary (p. 93)
  • Chapter 7 The Adapter Pattern (p. 95)
  • Overview (p. 95)
  • Introducing the Adapter Pattern (p. 96)
  • Learning the Adapter Pattern (p. 96)
  • Field Notes: The Adapter Pattern (p. 103)
  • Relating the Adapter Pattern to the CAD/CAM Problem (p. 106)
  • Summary (p. 106)
  • Supplement: C++ Code Example (p. 107)
  • Chapter 8 Expanding Our Horizons (p. 109)
  • Overview (p. 109)
  • Objects: the Traditional View and the New View (p. 110)
  • Encapsulation: the Traditional View and the New View (p. 112)
  • Find What Is Varying and Encapsulate It (p. 115)
  • Commonality/Variability and Abstract Classes (p. 119)
  • Summary (p. 121)
  • Chapter 9 The Bridge Pattern (p. 123)
  • Overview (p. 123)
  • Introducing the Bridge Pattern (p. 123)
  • Learning the Bridge Pattern: An Example (p. 125)
  • An Observation About Using Design Patterns (p. 136)
  • Learning the Bridge Pattern: Deriving It (p. 138)
  • The Bridge Pattern in Retrospect (p. 150)
  • Field Notes: Using the Bridge Pattern (p. 150)
  • Summary (p. 155)
  • Supplement: C++ Code Examples (p. 157)
  • Chapter 10 The Abstract Factory Pattern (p. 163)
  • Overview (p. 163)
  • Introducing the Abstract Factory Pattern (p. 163)
  • Learning the Abstract Factory Pattern: An Example (p. 164)
  • Learning the Abstract Factory Pattern: Implementing It (p. 171)
  • Field Notes: The Abstract Factory Pattern (p. 175)
  • Relating the Abstract Factory Pattern to the CAD/CAM Problem (p. 179)
  • Summary (p. 179)
  • Supplement: C++ Code Examples (p. 180)
  • Part IV Putting It All Together: Thinking in Patterns (p. 183)
  • Chapter 11 How Do Experts Design? (p. 185)
  • Overview (p. 185)
  • Building by Adding Distinctions (p. 185)
  • Summary (p. 194)
  • Chapter 12 Solving the CAD/CAM Problem with Patterns (p. 197)
  • Overview (p. 197)
  • Review of the CAD/CAM Problem (p. 197)
  • Thinking in Patterns (p. 199)
  • Thinking in Patterns: Step 1 (p. 199)
  • Thinking in Patterns: Step 2a (p. 200)
  • Thinking in Patterns: Step 2b (p. 206)
  • Thinking in Patterns: Step 2c (p. 210)
  • Thinking in Patterns: Step 2d (Facade) (p. 210)
  • Thinking in Patterns: Step 2d (Adapter) (p. 212)
  • Thinking in Patterns: Step 2d (Abstract Factory) (p. 213)
  • Thinking in Patterns: Step 3 (p. 213)
  • Comparison with the Previous Solution (p. 214)
  • Summary (p. 215)
  • Chapter 13 The Principles and Strategies of Design Patterns (p. 217)
  • Overview (p. 217)
  • The Open-Closed Principle (p. 218)
  • The Principle of Designing from Context (p. 218)
  • The Principle of Containing Variation (p. 223)
  • Summary (p. 224)
  • Part V Handling Variations with Design Patterns (p. 227)
  • Chapter 14 The Strategy Pattern (p. 229)
  • Overview (p. 229)
  • An Approach to Handling New Requirements (p. 229)
  • Initial Requirements of the Case Study (p. 232)
  • Handling New Requirements (p. 233)
  • The Strategy Pattern (p. 237)
  • Field Notes: Using the Strategy Pattern (p. 239)
  • Summary (p. 240)
  • Chapter 15 The Decorator Pattern (p. 241)
  • Overview (p. 241)
  • A Little More Detail (p. 241)
  • The Decorator Pattern (p. 243)
  • Applying the Decorator Pattern to the Case Study (p. 244)
  • Another Example: Input/Output (p. 248)
  • Field Notes: Using the Decorator Pattern (p. 250)
  • Summary (p. 252)
  • Supplement: C++ Code Examples (p. 252)
  • Chapter 16 The Singleton Pattern and the Double-Checked Locking Pattern (p. 255)
  • Overview (p. 255)
  • Introducing the Singleton Pattern (p. 256)
  • Applying the Singleton Pattern to the Case Study (p. 256)
  • A Variant: The Double-Checked Locking Pattern (p. 258)
  • Field Notes: Using the Singleton and Double-Checked Locking Patterns (p. 261)
  • Summary (p. 261)
  • Supplement: C++ Code Examples (p. 262)
  • Chapter 17 The Observer Pattern (p. 263)
  • Overview (p. 263)
  • Categories of Patterns (p. 263)
  • More Requirements for the Case Study (p. 265)
  • The Observer Pattern (p. 266)
  • Applying the Observer to the Case Study (p. 267)
  • Field Notes: Using the Observer Pattern (p. 274)
  • Summary (p. 275)
  • Supplement: C++ Code Example (p. 276)
  • Chapter 18 The Template Method Pattern (p. 279)
  • Overview (p. 279)
  • More Requirements for the Case Study (p. 279)
  • The Template Method Pattern (p. 280)
  • Applying the Template Method to the Case Study (p. 280)
  • Field Notes: Using the Template Method Pattern (p. 282)
  • Summary (p. 284)
  • Chapter 19 The Factory Method Pattern (p. 285)
  • Overview (p. 285)
  • More Requirements for the Case Study (p. 285)
  • The Factory Method Pattern (p. 287)
  • Field Notes: Using the Factory Method Pattern (p. 287)
  • Summary (p. 289)
  • Chapter 20 The Analysis Matrix (p. 291)
  • Overview (p. 291)
  • In the Real World: Variations (p. 291)
  • Case Study in Variation: An International E-Tail System (p. 292)
  • Field Notes (p. 299)
  • Summary (p. 302)
  • Part VI Endings and Beginnings (p. 303)
  • Chapter 21 Design Patterns Reviewed from the New Perspective of Object-Oriented Design (p. 305)
  • Overview (p. 305)
  • A Summary of Object-Oriented Principles (p. 305)
  • How Design Patterns Encapsulate Implementations (p. 306)
  • Commonality/Variability Analysis and Design Patterns (p. 307)
  • Decomposing a Problem Domain into Responsibilities (p. 308)
  • Relationships Within a Pattern (p. 309)
  • Patterns and Contextual Design (p. 310)
  • Field Notes (p. 311)
  • Summary (p. 311)
  • Chapter 22 Bibliography (p. 313)
  • Design Patterns Explained: The Web Site Companion (p. 313)
  • Recommended Reading on Design Patterns and Object Orientation (p. 314)
  • Recommended Reading for Java Programmers (p. 316)
  • Recommended Reading for C++ Programmers (p. 317)
  • Recommended Reading for COBOL Programmers (p. 317)
  • Recommended Reading on eXtreme Programming (p. 318)
  • Recommended Reading on General Programming (p. 318)
  • Personal Favorites (p. 319)
  • Index (p. 323)