One of the goals of object-oriented design is to distribute behavior among different objects. This kind of partitioning is good since it encourages reuse.
Sometimes, the interaction between these objects become so much that every object in the system ends up knowing about every other obejct. Lots of of such interactions prevent an object from working without the support of a lot of other...