Designing with Maintainability in Mind
Designing useful and concise classes promotes a high level of maintainability. Just as you design a class with extensibility in mind, you should also design with future maintenance in mind.
The process of designing classes forces you to organize your code into many (ideally) manageable pieces. Separate pieces of code tend to be more maintainable than larger pieces of code (at least that's the idea). One of the best ways to promote maintainability is to reduce interdependent code—that is, changes in one class have no or minimal effects on other classes.
Highly Coupled Classes
Classes that are highly dependent on one another are considered highly coupled. Thus, if a change made to one class forces a change ...