Introduction - If you have any usage issues, please Google them yourself
Short communication chains between the objects
Balanced workload across the objects
Low degree of connectivity (associations) among the objects
Expert Doer Principle: that who knows should do the task
High Cohesion Principle: do not take on too many computation responsibilities