我正在处理一个对象,特别是它的一个函数,它看起来像这样:
public class Dog {
private ArrayList<Paw> paws;
private double age;
private Tongue tongue;
public Dog(ArrayList<Paw> paws, double age, Tongue tongue) {
this.paws = paws;
this.age = age;
this.tongue = tongue;
}
public void bark() {
// ... about 100 lines of side effects operating
// on the object's global members ...
}
}
Run Code Online (Sandbox Code Playgroud)
我真的想要修复这些副作用并将对象重构为只做一件事的函数.
Eclipse中是否有自动化过程来标记可能的副作用?
如果没有,是否有我可以遵循的手动算法,所以我不会迷失在兔子洞里?
我会创建一个单元测试来测试你的旧Dog课程,包括所有"副作用"(不太清楚你的意思).
假设您的单元测试通过,您可以开始重构(使用Eclipse,选择适当的行并使用右键单击,Refactor,Extract Method可能是您的朋友)并继续使用单元测试来检查重构是否已经破坏了任何内容.
编辑:
要找出更改您Paw和Tongue类的属性的其他内容,您可以在任何使用的属性上设置修改观察点(即在属性上设置断点,右键单击断点,断点属性,取消"访问")bark(),然后您正在调试器中运行您的应用程序,每当任何更改属性时,调试器将停止.
| 归档时间: |
|
| 查看次数: |
416 次 |
| 最近记录: |