In this article we will learn about describing design patterns. The information in a design pattern’s documentation will be described as follows:
Contents
Pattern name and classification
The pattern name specifies the essence of the pattern precisely. A good name is a key as it will become a part of our design vocabulary. Classification specifies the type of pattern.
Intent
A short statement that tells us what the pattern does and which design issue or problem the pattern addresses.
Also Known As
Other well known names for the pattern, if any.
Motivation
A scenario that illustrates a design problem and how the class and object structures solve that problem. The scenario will help us understand the abstract pattern definition.
Applicability
This specifies in which situations a design pattern can be applied. What are the examples of poor designs that the pattern can address? How to recognize these situations?
Structure
A graphical representation of the classes involved in the pattern following the notations of Object Modeling Technique (OMT). We also use interaction diagrams to illustrate sequences of the requests and the collaborations between objects.
Participants
The classes and / or objects participating in the pattern and their responsibilities.
Collaborations
How the classes and objects collaborate to carry out their responsibilities.
Consequences
Tells us what are the costs and benefits of using the pattern. Also tells us which part of the system can be changed independently.
Implementation
Specifies what techniques we should be aware of when implementing the pattern and also tells us if there are any language specific issues.
Sample Code
Code fragments that tell us how to implement the pattern in java.
Known Uses
Example usage of the patterns in the real world.
Related Patterns
Specifies which other patterns are related to this pattern and what are the differences between them.
Suryateja Pericherla, at present is a Research Scholar (full-time Ph.D.) in the Dept. of Computer Science & Systems Engineering at Andhra University, Visakhapatnam. Previously worked as an Associate Professor in the Dept. of CSE at Vishnu Institute of Technology, India.
He has 11+ years of teaching experience and is an individual researcher whose research interests are Cloud Computing, Internet of Things, Computer Security, Network Security and Blockchain.
He is a member of professional societies like IEEE, ACM, CSI and ISCA. He published several research papers which are indexed by SCIE, WoS, Scopus, Springer and others.
Leave a Reply