我有一个叫做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行代码对我来说似乎不合适。