They expand the amount of code you have to think about at any one time, thereby increasing complexity.
Note: when thinkinh about the solution to a design probem I shoul consider how much code I must think about at any one time
If you can't figure out how to use a class based solely on its interface documentation, the right response is not to pull up the source code and look at the implementation. That's good initiative but bad judgment. The right response is to contact the author of the class and say "I can't figure out how to use this class." The right response on the class-author's part is not to answer your question face to face. The right response for the class author is to check out the class-interface file, modify the class-interface documentation, check the file back in, and then say "See if you can understand...
Note: a great tip for ensuring issues and misunderstandings get documented
Containment is the simple idea that a class contains a primitive data element or object.
Note: i think contanment is th same as delegation
Be critical of classes that contain more than about seven data members. The number "7±2" has been found to be a number of discrete items a person can remember while performing other tasks (Miller 1956).
Note: wow that is a very presice recommendation and one that could make many of the classes i work with considerably easier to instantiate during testing and such