O'Reilly logo
  • joseph isaac thinks this is interesting:

Finding the Dependencies That Matter

Imagine each of these truths as a continuum along which all application code falls. Classes vary in their likelihood of change, their level of abstraction, and their number of dependents. Each quality matters, but the interesting design decisions occur at the place where likelihood of change intersects with number of dependents. Some of the possible combinations are healthy for your application; others are deadly.

Figure 3.2 summarizes the possibilities.


Cover of Practical Object-Oriented Design in Ruby: An Agile Primer


Diagram to keep in mind when deciding on certain designs with regards to dependencies.