java - 重构。当代码仅相差一行时复制粘贴代码

标签 java web-applications refactoring legacy

我有一个名为 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/

相关文章:

java - SQLException : Protocol violation. Oracle JDBC 驱动程序问题

java - 检测 html 元素更改的最佳方法?

web-applications - Maven 对 Web 应用程序的依赖

java - Spring 3.1 MVC Web应用程序中的安全性和Webflow配置示例?

javascript - 使用 Javascript 进行自动身份验证?

java - 验证 SOAP 响应 xml 时间戳和签名 X509 spring-ws-security

java - Hibernate xml 文件问题

python - 在 Python 中重构 For 循环

c# - 如何交换两个 SyntaxNode (Roslyn C#)

PhpStorm:用类常量替换字符串文字