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

08-06 22:22