Types
Creational patterns
Creating objects
Structural patterns
Assembling objects and classes into larger structures while keeping these structures flexible and efficient
Behavioral patterns
Responsibilities between objects