【问题标题】:Delegation of a functionality from method to other in java在java中将功能从方法委托给其他方法
【发布时间】:2013-12-06 06:05:34
【问题描述】:

我编写了一个代码,但我的代码审查员没有通过该代码。我想征求你们的第二意见。
我无法编写确切的代码,只是提供一个模拟代码来理解我的问题。 代码

class A{

  void method1(){
//method1 specific tasks
  callcommon();
}

void method2(){
//method2 specific tasks
 callcommon();
}

void method3(){
//method2 specific tasks
 callcommon();
}

void method4(){
//method2 specific tasks
 callcommon();
}

B callcommon(){
returns new B();
}

根据代码审查员:我不应该将对象“B”的创建委托给 callcommon() 方法,因为这是单行方法,所以没有必要委托。

我的论点是:我将对象'B'的创建逻辑分离到一个单独的方法中,因为将来即使这个方法的构造函数发生变化,我只需要在一种 callcommon() 方法,而不是全部 4 种方法。

所以我想听取您对此的评论。

【问题讨论】:

  • 您不能将其称为委托,但您的方法应该会提高可读性。

标签: java oop design-patterns coding-style delegates


【解决方案1】:

我认为我同意代码审查员的观点。 您正在尝试执行一些过早的优化。构造函数可以保持不变,但您已经编写了三行冗余代码。如果您将在另一堂课中再次这样做 - 冗余行的数量将增加一倍。 此外,您所有的 4 种方法都变得不那么可读了。

【讨论】:

  • 假设构造函数被更改为输入一些参数,在这种情况下我不需要在 4 个地方而不是一个地方进行更改
  • @VKSingla 但是构造函数没有改变,你不知道它会改变。
  • @VKSingla 现在的 IDE 允许重构具有所有发生率的任何实体。尽管如此,如果您的构造函数发生重大变化,您也必须重构 callcommon() 的调用。
猜你喜欢
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 2023-04-10
  • 2014-12-10
  • 2015-04-22
  • 2017-02-28
  • 2012-11-14
  • 2020-06-05
相关资源
最近更新 更多