It solves a problem but beyond that, it’s a proven concept just because something solves a problem does not make it a design pattern it has to be a proven concept that works in a lot of different areas in a lot of different applications and the solution of the problem cannot be obvious. It describes a relationship 9 times out of 10 it deals with a relationship and how things interact in out code.
It has a significant human component it means we have to do something to make it really work as a pattern.
- 1 Creational Design Patterns – These are patterns that deal with new creation with new instances of an object
- 1.1 Constructor (more specific to js)
- 1.2 Module (more specific to js)
- 1.3 Factory
- 1.4 Singleton (a lot of things are singleton that you migt)
- 2 Structural Patterns – These patterns deal with the make up of the actual objects themselves
- 2.1 Decorator
- 2.2 Facade
- 2.3 Flyweight
- 3 Behavioral Patterns – These patterns deal with how object relate with each other and how they operate as opposed to the structure of getting a new instance
- 3.1 Command
- 3.2 Mediator
- 3.3 Observer