Introduction to OOP: Chapter 2: Responsibility Driven Design:
Coupling and Cohesion
The separation of tasks into the domains of different components should be
guided by the concepts of coupling and cohesion.
Cohesion is the degree to which the tasks assigned to a component seem to
form a meaningful unit. Want to maximize cohesion.
Coupling is the degree to which the ability to fulfill a certain
responsibility depends upon the actions of another component. Want to
Intro OOP, Chapter 2, Slide 25