Object Scope: Deals with object relationships that can be changed at runtime. Class Scope: Deals with class relationships that can be changed at compile time.
Creational Patterns: Used to construct objects such that they can be decoupled from their implementing system.
Structural Patterns: Used to form large object structures between many disparate objects.
Behavioral Patterns: Used to manage algorithms, relationships, and responsibilities between objects.