代码之家  ›  专栏  ›  技术社区  ›  Pratik Kapoor

Java-重构几乎相同的方法

  •  1
  • Pratik Kapoor  · 技术社区  · 8 年前

    我有一种方法,看起来像这样:

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

    此方法从两个位置调用。在其中一个地方,我想按原样调用整个方法。其次,我只想执行 Code Block 但不是 CallToAnotherMethod() .

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

    提前感谢您的建议。

    2 回复  |  直到 8 年前
        1
  •  1
  •   Sync    8 年前

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

    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(...) .

        2
  •  -1
  •   diegoveloper    8 年前

    给你

    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
    }
    
    推荐文章