【发布时间】:2013-12-18 22:25:43
【问题描述】:
这与 Android 上的 API 设计有关:
我想拥有良好的编码风格,是的,我意识到这非常小,但是假设我有类似的东西:
public boolean validateSomeInputAndDoLogicIfNot(Context context, MyObject myObject) {
if (someObject.isCaseOne()) {
Toast.makeToast...
return true;
} else if (someObject.isCaseTwo()) {
doSomethingCrazyHere();
return true;
}
doSomethingMinorHere();
return false;
}
首先,我看到很多代码将它们的函数命名为isValid(input)。但假设它无效,我希望该函数做不同的事情。现在,另一件事是:我将多次使用此功能。
所以,在我看来,像isValid() 这样的命名意味着它不做任何逻辑,它只是做一些检查,不做任何花哨的事情。
但是命名validateObject() 之类的东西让我觉得它应该是一个可以做不同事情的 void 函数,但当然不能返回布尔值。
所以我的问题是:这种特定类型的函数的正确名称是什么?
**更新:
首先,感谢您将其分为两个功能的建议。我不喜欢它的唯一原因是someObject 可以有多个状态,导致它有效或无效或其他。因此,someObject.isCaseOne() 和 someObject.isCaseTwo()。所以如果我要检查每个状态,我将不得不为一个对象的多个状态创建一个枚举?我觉得这是引入不必要的代码:(
【问题讨论】:
-
您是否考虑过将功能一分为二?验证并(分别)对无效值采取措施?
-
@T.J.Crowder 请看我的更新。感谢您的建议。
标签: java android coding-style refactoring