一些想法(更像是启发式):
1)检查班级的领域.如果一组字段仅用于少数方法,则可能表示该组字段和使用它的方法可能属于另一个类.
2)假设一个名称很好的类,将类的名称与类实际执行的名称进行比较.如果您发现的方法超出了您对类名称的期望,那么这可能表明这些方法属于不同的类.例如,如果您的类表示客户,但也打开,关闭和写入日志文件,请将日志文件代码分解为Logger类.另请参阅:单一责任原则(PDF)以获取一些有趣的想法.
3)如果某些方法主要在另一个类上调用方法,那么这可能表明这些方法应该移动到他们经常使用的类(例如Feature Envy).
小心:就像他们说的那样,分手很难做到.如果在分类时存在风险,您可能需要进行一些测试,以便在重构时知道自己没有破坏任何东西.考虑阅读" 有效使用遗留代码 "和" 重构 "一书.