Design Pattern Flashcards
Abstract Factory
Provides an interface for creating families of related or dependent objects without specifying their concrete classes
Adapter
Convert the interface of a class into another interface clients expect
Bridge
Decouple an abstraction from an implementation so the two can vary independently
Builder
Separate the construction of a complex object from its representation so that the same construction process can create different representations
Chain of Responsibility
Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request
Command
Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations
Composite
Compose objects into tree structures to represent part-whole hierarchies
Decorator
Attach additional responsibilities to an object dynamically
Facade
Provide a unified interface to a set of interfaces in a subsystem
Factory Method
Define an interface for creating an object, but let subclasses decide which class to instantiate
Flyweight
Use sharing to support large numbers of fine-grained objects efficiently
Interpreter
Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language
Iterator
Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation
Mediator
Define an object that encapsulates how a set of objects interact
Memento
Without violating encapsulation, capture and externalize an objects internal state so that the object can be resored to this state later