Divide up work between Ul classes and non-Ul classes. - Controller
Have the ability to make up classes to support High Cohesion, Low Coupling, and reuse. - pure fabrication
Give responsibility to a class based on the information it has access to.- information expert
Create classes that have a singular purpose and know little about each other.- low coupling
Have the ability to use not just the class itself but any superclass of the class as its reference type.- polymorphism
Minimize the impact of changes in a system. - protected variation