-
Define a family of algorithms, encapsulate each one, and make them interchangeable.
Strategy
-
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
Observer
-
Attach additional responsibilities to an object dynamically. [This pattern] provide a flexible alternative to subclassing for extending functionality.
Decorator
-
Define an interface for creating an object, but let subclasses decide which class to instantiate. [This pattern] lets a class defer instantiation to subclasses.
Factory Method
-
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
Abstract Factory
-
Ensure a class only has one instance, and provide a global point of access to it.
Singleton
-
Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.
Command
-
Convert the interface of a class into another interface clients expect. [This pattern] lets classes work together that couldn’t otherwise because of incompatible interfaces.
Adapter
-
Provide a unified interface to a set of interfaces in a subsystem. [This pattern] defines a higher-level interface that makes the subsystem easier to use.
Façade
-
Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. [This pattern] lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.
Template Method
-
Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.
Iterator
-
Compose objects into tree structures to represent part-whole hierarchies. [This pattern] lets clients treat individual objects and compositions of objects uniformly.
Composite
-
Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.
State
-
Provide a surrogate or placeholder for another object to control access to it.
Proxy
|
|