A: A pattern is a reusable solution that can be applied to commonly occurring problems in software design. There are three main benefits from Design Patterns.
1. Patterns are proven solutions.
2. Patterns can be easily re-used.
3. Patterns can be expressive.
However, Patterns are NOT an exact solution. It provides an idea and prototype. It can be building blocks and you can customize it for your project.
"Reusing patterns assists in preventing minor issues that can cause major problems in the application development process". - So, you can focus on your problem more. These days nobody starts from the scratch unless it is required.
"Patterns can provide generalized solutions which are documented in a fashion that doesn't require them to be tied to a specific problem."
A Good Pattern does these.
- Solves a particular problem.
- The solution to this problem cannot be obvious.
- The concept described must have been proven.
- It must describe a relationship.
Here is the rule of three for a valid pattern.
1. Fitness of purpose. - How?
The structure of a design pattern.
Ensure that you draw upon best practices.
Your design patterns should be transparent to the user.
Remember that originality is not key in pattern design.
Know the differences between patterns and design.
Your pattern needs to have a strong set of examples.