Design pattern
A design pattern is a reusable solution to a problem found in software design. Patterns are designed to leverage an existing concept instead re-inventing it, allowing developers to be more productive and increase the quality of work.
A design pattern isn't a software artifact, but instead is implemented by the developer following the description of the pattern as outlined. A pattern can be made more easily reusable through the process of creating abstractions of the pattern through which inheritance or polymorphism implements the code where the pattern is put into practice.
Types
Creational
Structural
Behavioural
- Chain of responsibility
- Command
- Interpreter
- Mediator
- Memento
- Observer
- State
- Strategy
- Template method
- Visitor