Summary
The design pattern allows people to reuse the successful design and architecture more easily and easily. Expressing proven technologies into design patterns also makes it easier for new system developers to understand their design ideas.
Pattern name)
It uses one or two words to describe the model's problems, solutions, and effects. Naming a new pattern adds our design vocabulary. The design pattern allows us to design at a high level of abstraction. Based on a schema vocabulary, we can discuss patterns between ourselves and our colleagues and use them when writing documents. The model name can help us think about it, so that we can exchange design ideas and design results with others. Finding the proper pattern name is also one of the difficulties in designing pattern cataloguing.
Problem)
Describes when to use the mode. It explains the causes and consequences of design problems and problems, and may describe specific design problems, such as how to use objects to represent them.Algorithm. It may also describe the class or object structure that leads to inflexible design. Sometimes, the problem part includes a series of prerequisites that the usage mode must meet.
Solution)
Describes the components of the design, the relationship between them, their respective responsibilities and collaboration methods. Because a pattern is like a template and can be used in many different scenarios, the solution does not describe a specific and specific design or implementation, instead, it provides an abstract description of the design problem and how to use a combination of general elements (class or object combination) to solve the problem.
Effect (consequences)
Describes the effect of the model application and the balance between the use mode. Although we do not always mention pattern effects when describing design decisions, they are important for evaluating design choices and understanding the cost and benefits of patterns. Most of the software results focus on measuring time and space. They also express language and implementation problems. Because reuse is one of the elements of object-oriented design, the pattern effect includes its impact on system flexibility, scalability, or portability, listing these effects explicitly is helpful for understanding and evaluating these patterns.