Java最喜欢的重构技术

标签 java refactoring

<分区>

我在其他人的 Java 代码中发现了一些可以从一些简单的重构中获益的常见代码模式。

您最喜欢的代码模式有哪些讨厌之处及其修复方法(如果不明显,原因是什么)?

我冒昧地用我自己最讨厌的几个问题来回答。

最佳答案

我最喜欢的重构之一是使用策略模式而不是长长的 if-else/switch 语句。 例如。

String chooser = ""//some sting

if(testCond1(chooser)){
doSomething1();
} else if(testCond2(chooser)){
doSomethingElse2();
} else if(testCond2(chooser)){
doSomethingElse3();
} else if(testCond4(chooser)){
doSomethingElse4();
} else if(testCond5(chooser)){
doSomethingElse5();
} else if(testCond6(chooser)){
doSomethingElse6();
}

可以改成:

    Map<String, Handler> handlers = new HashMap<String, Handler>();

handlers.get(chooser).handle();

然后我们定义一个Handler接口(interface)

interface Handler{
    handle();
}

对于每个条件,我们都有一个实现处理程序的新类。

class CondOne implements Handler{
    handle(){
        //some code
    }
}

优点。面向对象的方法,代码更易于维护。在不更改代码的重要部分的情况下添加新条件也很容易。

关于Java最喜欢的重构技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7174555/

相关文章:

java - JSP - 连接并将数据插入 MySQL 数据库

java - 使用 gradle 生成一个链接 LibGDX 项目 Assets 的 JAR 文件

eclipse - Eclipse 支持的用于删除父类(super class)依赖性的重构可能是什么?

java - 有什么方法可以重构这段代码或以紧凑的形式重写它吗?

java - 如何重构程序启动代码?

java - 从 URL 获取文件 - 错误

java - 在 MySQL 中加密和解密文本(可能使用 Java)

java - 在 GWT CellTable ImageCell 中显示 base64 编码的图像

java - 在 Java 项目上激活 Spartan Refactoring 插件

c++ - 生成用于大规模重构/重命名的 C++ 符号列表