-> 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 patterns provide instantiation mechanisms, making it easier to create objects in a way that suits the situation.
- Factory Method
- Abstract Factory
-> Structural patterns generally deal with relationships between entities, making it easier for these entities to work together.
-> Behavioral patterns are used in communications between entities and make it easier and more flexible for these entities to communicate.