Chapter 4. The Structure of a Design Pattern

You may be curious about how a pattern author might approach outlining a structure, implementation, and purpose of a new pattern. A pattern is initially presented in the form of a rule that establishes a relationship between:

  • A context

  • A system of forces that arises in that context

  • A configuration that allows these forces to resolve themselves in context

With this in mind, lets now take a look at a summary of the component elements for a design pattern. A design pattern should have the following:

Pattern name

Description

Context outline

The contexts in which the pattern is effective in responding to users’ needs.

Problem statement

A statement of the problem being addressed so we can understand the intent of the pattern.

Solution

A description of how the user’s problem is being solved in an understandable list of steps and perceptions.

Design

A description of the pattern’s design and, in particular, the user’s behavior in interacting with it.

Implementation

A guide to how the pattern would be implemented.

Illustrations

Visual representations of classes in the pattern (e.g., a diagram).

Examples

Implementations of the pattern in a minimal form.

Corequisites

What other patterns may be needed to support use of the pattern being described?

Relations

What patterns does this pattern resemble? Does it closely mimic any others?

Known usage

Is the pattern being used in the wild? If so, where and how?

Discussions

The team or author’s thoughts on the exciting benefits of the pattern.

Design patterns are quite a powerful approach to getting all of the developers in an organization or team on the same page when creating or maintaining solutions. If you are considering working on a pattern of your own, remember that although patterns may have a heavy initial cost in the planning and write-up phases, the value returned from that investment can be quite worth it. Always research thoroughly before working on new patterns however, as you may find it more beneficial to use or build on top of existing proven patterns, rather than starting afresh.

Get Learning JavaScript Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.