Template:Patterns

This Design Pattern is based on the [Gang of Four Structure].

Pattern Name and Classification: Every pattern should have a descriptive and unique name that helps in identifying and referring to it.

Intent: This section should describe the goal behind the pattern and the reason for using it. It resembles the problem part of the pattern.

Also Known As: A pattern could have more than one name. These names should be documented in this section.

Motivation: This section provides a scenario consisting of a problem and a context in which this pattern can be used. By relating the problem and the context, this section shows when this pattern is used.

Implementation: This section describes the implementation of the pattern, and represents the solution part of the pattern. It provides the techniques used in implementing this pattern, and suggests ways for this implementation.

Structure: A graphical representation of the pattern. Class diagrams and Interaction diagrams can be used for this purpose.

Applicability: This section includes situations in which this pattern is usable. It represents the context part of the pattern.

Participants: A listing of the classes and objects used in this pattern and their roles in the design.

Collaboration: Describes how classes and objects used in the pattern interact with each other.

Consequences: This section describes the results, side effects, and trade offs caused by using this pattern.

Sample Code: An illustration of how this pattern can be used in a programming language.
 * has sample code::xxx

Known Uses: This section includes examples of real usages of this pattern. The following software implements this pattern.
 * implements::xxx

Related Patterns: This section includes other patterns that have some relation with this pattern, so that they can be used along with this pattern, or instead of this pattern. It also includes the differences this pattern has with similar patterns.
 * has alternative::xxx
 * compliments::xxx