Why re-invent the wheel? Perhaps your challenging problem has already been solved...
Use these design patterns in-app where the problems occur.
Reusable, reliable solutions which are well documented & easy to discuss. Improved code, less brittle apps, easier feature increments.
Some patterns can be challenging, however your code will become simplified.
Patterns are designed to present solutions for decoupling objects or modules and reducing the overall complexity of your architecture. Better techniques for solving common problems = better overall programmer, better knowledge base.
Class instantiation - the creation of object instances in our applications.
1) Abstract Factory
2) Builder
3) Factory Method
4) Prototype
5) Singleton
The way objects are composed or put together.
1) Adapter
2) Bridge
3) Composite
4) Decorator
5) Facade
6) Flyweight
7) Proxy
Define how objects interact with one another.
1) Chain of Responsibility
2) Command
3) Interpreter
4) Iterator
5) Mediator
6) Memento
7) Observer
8) State
9) Strategy
10) Template Method
11) Visitor
Design patterns are not limited to Object Orientation. JavaScript has design patterns that deal with concurrency and module structure also. Infact there are 100's of design patterns across many languages and programming paradigms and new ones are being developed every day.
- Module
- Revealing Module
- Revealing Constructor
- Callback
- Middleware
- Reactor
- Blockchain
- Scheduler
- Publisher Subscriber
Read the .md files.