-> are optimized reusable solutions to the programming problems that we encounter every day.
-> Generic solutions to the common problems which are encountered in object oriented software design.
Creational
-> Creational patterns provide instantiation mechanisms, making it easier to create objects in a way that suits the situation.
- Singleton
- Factory Method
- Abstract Factory
- Builder
- Prototype
Structural
-> Structural patterns generally deal with relationships between entities, making it easier for these entities to work together.
- Adaptor
- Façade
- Proxy
- Bridge
- Composite
- Decorator
- Flyweight
Behavioral
-> Behavioral patterns are used in communications between entities and make it easier and more flexible for these entities to communicate.
- Observer
- Command