Pattern Name
|
Purpose/Description
|
Blackboard
|
- Artificial
intelligence pattern for combining disparate
sources of data
|
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.
- Chain the receiving objects and pass the request along the chain
until an object handles it.
|
Command
|
- Encapsulate a request as an object,
thereby allowing for the parameterization of clients with different requests,
and the queuing or logging of requests.
- It also allows for the support of undo-able operations.
|
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.
- Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and
- it
allows their interaction to vary independently.
|
Memento
|
- Without violating encapsulation,
capture and externalize an object's internal state
- allowing the object to be
restored to this state later.
|
Null object
|
- Avoid null references by providing a
default object.
|
Observer or Publish/subscribe
|
- Define a one-to-many dependency
between objects where a state change in one object results in all
- its
dependents being notified and updated automatically.
|
Servant
|
- Define common functionality for a
group of classes.
|
Specification
|
- Recombinable business logic in a Boolean fashion.
|
|
- Allow an object to alter its behavior
when its internal state changes. The object will appear to change its class.
|
Strategy
|
- Define a family of algorithms,
encapsulate each one, and make them interchangeable.
- Strategy lets the
algorithm vary independently from clients that use it.
|
Template method
|
- Define the skeleton of an algorithm
in an operation, deferring some steps to subclasses.
- Template method lets
subclasses redefine certain steps of an algorithm without changing the
algorithm's structure.
|
Visitor
|
- Represent an operation to be
performed on the elements of an object structure. Visitor lets a new
operation be defined without changing the classes of the elements on which it
operates.
|