The only solution to this problem is the same as for object bloat: keep a careful eye on the class design and make sure that an object's role remains
well defined. If an object loses focus, you need to modify the design.
This is terribly important. The ability to easily work with any object-oriented system depends on how well the classes are defined. If the classes are clearly delineated, well defined, and self-contained, a developer can treat them as abstractions. The less this is true, the more the developer must treat them as collections of loosely related functions, which increases the complexity. People deal with complexity by inventing abstractions. To help them, make sure that: