Design patterns explained a new perspective on object-oriented design
"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...
Autor principal: | |
---|---|
Otros Autores: | |
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Indianapolis, IN :
Addison Wesley Professional
2004.
|
Edición: | Second ed |
Colección: | The software patterns series Design patterns explained
|
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009627158206719 |
Tabla de Contenidos:
- Cover
- Contents
- 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 UML-The 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
- Chapter 23 The Factory Method Pattern
- Overview
- More Requirements for the Case Study
- The Factory Method Pattern
- Factory Method Pattern and Object-Oriented Languages
- Field Notes: Using the Factory Method Pattern
- Summary
- Review Questions
- Chapter 24 Summary of Factories
- Overview
- Steps in the Software Process
- Parallels in Factories and XP Practices
- Scaling Systems
- PART VIII: Endings and Beginnings
- Chapter 25 Design Patterns Reviewed: A Summation and a Beginning
- Overview
- A Summary of Object-Oriented Principles
- How Design Patterns Encapsulate Implementations
- Commonality and Variability Analysis and Design Patterns
- Decomposing a Problem Domain into Responsibilities
- Patterns and Contextual Design.
- Relationships Within a Pattern
- Design Patterns and Agile Coding Practices
- Field Notes
- Summary
- Review Questions
- Chapter 26 Bibliography
- Design Patterns Explained: The Web Site Companion
- Recommended Reading
- Recommended Reading for Java Programmers
- Recommended Reading for C++ Programmers
- Recommended Reading for COBOL Programmers
- Recommended Reading on eXtreme Programming
- Recommended Reading on General Programming
- Personal Favorites
- Index.