Design Patterns: Elements of Reusable Object-Oriented Software
Pdf ko'rish bet 288/288 Sana 07.04.2022 Hajmi 4,06 Mb. #535140
Bog'liq
GOF Design Patterns
Design Patterns: Elements of Reusable Object-Oriented Software
430
[WGM88]
Andr
é
Weinand, Erich Gamma, and Rudolf Marty.ET++
—
An object-oriented
application framework in C++. In
Object-Oriented Programming Systems,
Languages, and ApplicationsConference Proceedings
, pages 46
–
57, San Diego,
CA,September 1988. ACM Press.
Design Patterns: Elements of Reusable Object-Oriented Software
431
Design pattern relationships
Document Outline Contents Preface to CD Preface to Book Foreword Guide to Readers 1. Introduction What is a Design Pattern? Design Patterns in Smalltalk MVC Describing Design Patterns The Catalog of Design Patterns Organizing the Catalog How Design Patterns Solve Design Problems Finding Appropriate Objects Determining Object Granularity Specifying Object Interfaces Specifying Object Implementations Putting Reuse Mechanisms to Work Designing for Change How to Select a Design Pattern How to Use a Design Pattern 2. A Case Study: Design a Document Editor Design Problems Document Structure Formatting Encapsulating the Formatting Algorithm Compositor and Composition Strategy Pattern Embellishing the User Interface Transparent Enclosure Monoglyph Decorator Pattern Supporting Multiple Look-and-Feel Standards Abstracting Object Creation Factories and Product Classes Abstract Factory Pattern Supporting Multiple Window Systems Can We Use an Abstract Factory? Encapsulating Implementation Dependencies Window and WindowImp WindowImp Subclasses Configuring Windows with WindowImps Bridge Pattern User Operations Encapsulating a Request Command Class and Subclasses Undoability Command History Command Pattern Spelling Checking and Hyphenation Accessing Scattered Information Encapsulating Access and Traversal Iterator Class and Subclasses Iterator Pattern Traversal versus Traversal Actions Encapsulating the Analysis Visitor Class and Subclasses Visitor Pattern Summary 3. Creational Patterns Abstract Factory Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Builder Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Factory Method Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Prototype Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Singleton Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Discussion of Creational Patterns 4. Structural Patterns Adapter Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Bridge Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Composite Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Decorator Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Facade Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Flyweight Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Proxy Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Discussion of Structural Patterns Adapter versus Bridge Composite versus Decorator versus Proxy 5. Behavioral Patterns Chain of Responsibility Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Command Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Interpreter Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Iterator Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Mediator Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Memento Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Observer Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns State Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Strategy Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Template Method Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Visitor Intent Motivation Applicability Structure Participants Collaborations Consequences Implementation Sample Code Known Uses Related Patterns Discussion of Behavioral Patterns Encapsulating Variation Objects as Arguments Should Communication be Encapsulated or Distributed? Decoupling Senders and Receivers Summary 6. Conclusion What to Expect from Design Patterns A Common Design Vocabulary A Documentation and Learning Aid An Adjunct to Existing Methods A Target for Refactoring A Brief History The Pattern Community Alexander's Pattern Languages Patterns in Software An Invitation A Parting Thought Appendix A: Glossary Appendix B: Guide to Notation Class Diagram Object Diagram Interaction Diagram Appendix C: Foundation Classes List Construction, Destruction, Initialization, and Assignment Accessing Adding Removing Stack Interface Iterator ListIterator Point Rect Bibliography Do'stlaringiz bilan baham: