重复删除代码:嵌套案例

时间:2016-04-28 06:53:56

标签: java refactoring code-duplication

所以,我正在开发一个结构转换类,它应该将我们系统中的文件从一种情况移动到另一种情况。

当它坐下时,我有一些List<File>包含需要以前缀分隔的xml项目(因为每个项目的规则略有不同)。新位置的数据来自文件本身。

我现在遇到的问题是我的大部分逻辑保持不变:基本上,我循环遍历列表,做一些通用逻辑来确定它必须去的位置,做一些特定的逻辑,然后我做一般动作然后采取具体行动。

for(...){
    if(GENERIC_LOGIC){
        if(SPECIFIC_LOGIC){
            doGenericAction();
            doSpecificAction();
        }
    }
}

当然,实际的代码并不是那么干净。这些位中的每一个都是大约4行的块。

现在,我的问题涉及将通用逻辑子句压缩成可管理的形式。我以前从来没有必要重构包含语句,只是内部语句。有人可以给我一些关于干净利落地使用最少代码污垢的指示吗?谢谢!

1 个答案:

答案 0 :(得分:0)

可能最干净的解决方案是使用抽象类,它定义通用逻辑,然后创建定义特定逻辑的其他类。

当您迭代文件时,您将创建适当的处理程序类的实例,然后让它完成剩下的工作。