我有一个名为 FirstClass
的类,它有一个超过 100 行的方法。现在我正在编写一个名为 SecondClass
的新类,它的方法与 FirstClass
中的方法完全一样,除了一行。
我可以复制 firstMethod()
的内容并将其粘贴到 secondMethod()
中,只需更改不同的行。但这对我来说似乎不对。
如何在不复制/粘贴代码的情况下处理这种情况?
无法更改 FirstClass。
public class FirstClass {
public void firstMethod() {
//100 lines of code
}
}
public class SecondClass {
public void secondMethod() {
// Copy/paste the content of firstMethod() from above?
}
}
最佳答案
我认为在这种情况下你最好的选择是 decorator . Here你可以看到一个基于 Java 的实现。
public class SecondClass extends FirstClass {
private FirstClass firstClass;
...
@Override
void firstMethod() {
// do something before
firstClass.firstMethod();
// do something after
}
但是一个方法中的 100 行代码对我来说似乎并不合适。
关于java - 重构。当代码仅相差一行时复制粘贴代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37146534/