A class is an abstraction. A vision of the world. You only can see so far when you are standing on top of a class (or concept), that's why ObjectOrientation likes to have so many objects and classes. The more classes that are in the system, the more likely that you will have a better vision of how the system works. ''On the other hand, adding more classes and objects can simply be adding unneeded complexity, which makes the system more resistant to change. Consider a similar situation in statistics: by adding more parameters to a model, you can fit the existing data up to an arbitrary level of precision; but by doing this, you necessarily add bias which will make future predictions based on the model wrong.'' Abstraction is about letting objects do what they are supposed to do (responsibility). Having class comments is good for this, even if it is in JavaDoc. Abstraction is generally good, but for a different point of view see AllAbstractionsLie.