Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Structure of a Design Pattern

Design pattern documentation is highly structured. The patterns are documented from a template that
identifies the information needed to understand the software problem and the solution in terms of the
relationships between the classes and objects necessary to implement the solution. There is no uniform
agreement within the design pattern community on how to describe a pattern template. Different authors
prefer different styles for their pattern templates. Some authors prefer to be more expressive and less
structured, while others prefer their pattern templates to be more precise and high grain in structure. We
will use the template first described by the authors of Design Patterns to illustrate a template.

Term Description

Pattern Name Describes the essence of the pattern in a short, but expressive, name

Intent Describes what the pattern does

Also Known As List any synonyms for the pattern

Motivation Provides an example of a problem and how the pattern solves that problem

Applicability Lists the situations where the pattern is applicable

Structure Set of diagrams of the classes and objects that depict the pattern

Participants Describes the classes and objects that participate in the design pattern and their
responsibilities

Collaborations Describes how the participants collaborate to carry out their responsibilities

Consequences Describes the forces that exist with the pattern and the benefits, trade-offs, and the
variable that is isolated by the pattern

This template captures the essential information required to understand the essence of the problem and
the structure of the solution. Many pattern templates have less structure than this, but basically cover the
same content.

Benefits of Design Patterns


Design patterns have two major benefits. First, they provide you with a way to solve issues related to
software development using a proven solution. The solution facilitates the development of highly cohesive
modules with minimal coupling. They isolate the variability that may exist in the system requirements,
making the overall system easier to understand and maintain. Second, design patterns make
communication between designers more efficient. Software professionals can immediately picture the
high-level design in their heads when they refer the name of the pattern used to solve a particular issue
when discussing system design.

You might also like