Template Pattern Name#

Copy this file to create a new pattern file. Replace template-pattern with the short name of the pattern. Add an introduction to the pattern here. This should be a brief overview of the pattern and what it does. List any synonyms for the pattern here.

e.g. this is a template pattern. It is used to create a new design pattern file. It is a reStructuredText file with a specific structure.

There’s no need to fill in every section if it’s not relevant to the pattern. However it will be useful to fill in as much as possible. Each section has prompts to help you fill it in. Delete the prompts once you’ve answered them.

Using this Pattern#

  • Why would you use this pattern? What problems does it solve?

  • What are the benefits of using this pattern?

  • When would you recommend someone use the pattern?

  • What are the situations that might indicate that this pattern is a good fit or not?

  • What are the drawbacks? What are the trade-offs?

  • What are the alternatives?


  • What is the structure of the pattern?

  • What are the key components?

  • What are the relationships between the components?

Roles and Responsibilities#

  • List the participants in the pattern

  • What are their responsibilities?

  • What are their relationships?


  • Provide an example of the pattern in use.


  • Provide details on how to test the pattern.


  • Provide details on how to implement the pattern.

Anything else#

  • Anything else that is relevant to the pattern.


  • Provide references to further reading on the pattern. This might be a book, article, website, video or other resource, including blogs on this site.