不使用方法的返回值,这是不好的设计?

Chi*_*led 5 java methods return-value

以下是checkUserGuess属于Board类的示例代码, 方法.

public String checkUserGuess(String aGuess)
{
   // Some processing

   return result_of_a_guess;
}
Run Code Online (Sandbox Code Playgroud)

我有一个SimpleGuessingGame类使用这个方法,并对该方法的处理感到满意.它不使用返回的值.

另一个类ComplexGuessingGame使用此方法,并使用方法返回的值进行进一步处理.

所以我们有两种情况,一种是使用返回值,另一种是忽略它.这是一个常见现象还是指向糟糕的设计?

das*_*ght 4

当您需要做这样的事情时,该方法很可能会做两件事对调用者有价值:

  1. 验证某些内容,或产生其他副作用,并且
  2. 计算结果返回给调用者

由于某些用户只需要 #1,而其他用户需要 #1 和 #2,因此将方法分为两部分可能是一个好主意,如下所示:

public void validatekUserGuess(String aGuess) {
   // Some processing
}
public String checkUserGuess(String aGuess) {
    validatekUserGuess(aGuess);
   // Some additional processing
   return result_of_a_guess;
}
Run Code Online (Sandbox Code Playgroud)

现在,希望忽略返回值的用户将不需要为计算他们无论如何都会丢弃的值而“支付”CPU 和内存。