物体之间的移动特征
即使您以一种不太完美的方式在不同的类之间分布功能,仍然有希望。
这些重构技术展示了如何在类之间安全地移动功能、创建新类以及对公共访问隐藏实现细节。
问题:一个方法在另一个类中比在它自己的类中使用得更多。
解决方案:在使用该方法次数最多的类中创建一个新方法,然后将旧方法中的代码移到那里。将原始方法的代码转换为对其他类中的新方法的引用,否则将其完全删除。
问题:一个字段在另一个类中比在它自己的类中使用得更多。
解决方案:在新类中创建一个字段,并将旧字段的所有用户重定向到该字段。
问题:当一个班级做两个班级的工作时,尴尬就产生了。
解决方案:相反,创建一个新类,并将负责相关功能的字段和方法放在其中。
问题:类几乎不做任何事情,也不负责任何事情,并且没有为它计划额外的职责。
解决方案:将所有特性从类移到另一个类中。
问题:客户端从对象А的字段或方法中获取对象B。然后客户端调用对象B的一个方法。
解决方案:在类a中创建一个新方法,将调用委托给对象B。现在客户端不知道类B,也不依赖类B。
问题:一个类有太多的方法,这些方法只是简单地委托给其他对象。
解决方案:删除这些方法,并强制客户端直接调用结束方法。
问题:实用程序类不包含所需的方法,也不能将方法添加到类中。
解决方案:将方法添加到客户端类,并将实用工具类的对象作为参数传递给它。
问题:实用程序类不包含您需要的一些方法。但是不能将这些方法添加到类中。
解决方案:创建一个包含方法的新类,并使其成为实用程序类的子类或包装器。