Java - 重构几乎相同的方法

时间:2017-11-22 19:44:06

标签: java design-patterns refactoring

我有一个看起来像这样的方法:

private void method(final Param one, final Param two) {
    Code Block
    CallToAnotherMethod() 
}

从2个地方调用此方法。在其中一个地方,我想按原样调用整个方法。第二,我想只执行Code Block而不是CallToAnotherMethod()

我该如何重构这个?使用99%的相同代码实现2个方法似乎并不优雅。

提前感谢您的建议。

2 个答案:

答案 0 :(得分:1)

对实际代码没有任何了解,很难正确判断它。与任何一般性问题一样,我们只能提供一般性答案。

private void method(final Param one, final Param two) {
    methodForCodeBlock(one, two);
    callToAnotherMethod() 
}

private void methodForCodeBlock(final Param one, final Param two) {
    // code block here
}

private void callToAnotherMethod() {
    ...
}

要仅执行代码块,请致电methodForCodeBlock(...)。要执行所有操作,请致电method(...)

答案 1 :(得分:-1)

你有

private void method(final Param one, final Param two) {
    codeBlockMethod() 
    CallToAnotherMethod() 
}


private void method2(final Param one, final Param two) {
    CallToAnotherMethod() 
}

private void codeBlockMethod() {
    Code Block
}