Fork me on GitHub

Project Notes

#374 Design Patterns

Book notes - Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Grady Booch, Richard Helm, Ralph Johnson, John Vlissides

Notes

Design Patterns: Elements of Reusable Object-Oriented Software is the classic “Gang of Four” work that first introduced me to design patterns in software.

cover

Contents

  • 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
    • How to Select a Design Pattern
    • How to Use a Design Pattern
  • A Case Study: Designing a Document Editor
    • Design Problems
    • Document Structure
    • Formatting
    • Embellishing the User Interface
    • Supporting Multiple Look-and-Feel Standards
    • Supporting Multiple Window Systems
    • User Operations
    • Spelling Checking and Hyphenation
    • Summary
  • Design Pattern Catalog
    • Creational Patterns
      • Abstract Factory
      • Builder
      • Factory Method
      • Prototype
      • Singleton
      • Discussion of Creational Patterns
    • Structural Patterns
      • Adapter
      • Bridge
      • Composite
      • Decorator
      • Facade
      • Flyweight
      • Proxy
      • Discussion of Structural Patterns
    • Behavioral Patterns
      • Chain of Responsibility
      • Command
      • Interpreter
      • Iterator
      • Mediator
      • Memento
      • Observer
      • State
      • Strategy
      • Template Method
      • Visitor
      • Discussion of Behavioral Patterns
  • Conclusion
    • What to Expect from Design Patterns
    • A Brief History
    • The Pattern Community
    • An Invitation
    • A Parting Thought
  • A Glossary
  • B Guide to Notation
    • B.1 Class Diagram
    • B.2 Object Diagram.
    • B.3 Interaction Diagram
  • C Foundation Classes
    • C.1 List
    • C.2 Iterator
    • С.3 Listiterator
    • C.4 Point .
    • C.5 Rect

Credits and References

About LCK#374 designdesign patternsBooks

This page is a web-friendly rendering of my project notes shared in the LittleCodingKata GitHub repository.

Project Source on GitHub Return to the LittleCodingKata Catalog
About LittleCodingKata

LittleCodingKata is my collection of programming exercises, research and code toys broadly spanning things that relate to programming and software development (languages, frameworks and tools).

These range from the trivial to the complex and serious. Many are inspired by existing work and I'll note credits and references where applicable. The focus is quite scattered, as I variously work on things new and important in the moment, or go back to revisit things from the past.

This is primarily a personal collection for my own edification and learning, but anyone who stumbles by is welcome to borrow, steal or reference the work here. And if you spot errors or issues I'd really appreciate some feedback - create an issue, send me an email or even send a pull-request.

Follow the Blog follow projects and notes as they are published in your favourite feed reader