Martin Fowler, Refactoring, Addison-Wesley Professional, ISBN 0-201-48567-2
Refactoring: Improving the Design of Existing Code, With Kent Beck, John Brant, William Opdyke, and Don Roberts (June 1999).
However, as more classes are developed in a program, especially during maintenance and/or refactoring, the problem of communication between these classes may become more complex.