Pattern Description Template

 
Purpose What does the pattern do? What design problem does it solve?
Structure A graphical representation of the classes & interfaces comprising the pattern
Consequences What are the trade-offs?
Implementation What important implementation details are not obvious?
Sample Code
Related Patterns What design patterns are similar? What are the key differences? With which other patterns should this pattern be used?