''(...a word in the RefactoringLanguage.)'' Due to other changes in a system, existing class names often become ambiguous, misleading, or otherwise inadequate to their task of conveying meaning in the system. '''Therefore,''' Change the class' name. Change all references, across the system, to use the new name. ----- In practice, there are other issues that also need to be addressed... * Change file names, if you have one source file for each class. * Change both "body" and "header" files, if your language has them. * If you are using Reflection in your application, do what you have to do to bring the changed classname in line. * Deal with source code management issues when file names change -- by having conventions to rename the files, or delete and create files under source control. Examples: * RenameClassInVbClassic ---- "conveying meaning in the system" Is this the reason we have such a structure? Or is it rather creating and using of meaningful names in a system? ---- See SystemOfNames - DontNameClassesObjectManagerHandlerOrData External - http://www.objectmentor.com/publications/naming.htm ---- CategoryRefactoring