java - Android 什么是命名也执行逻辑的 boolean 函数的最佳方式?

标签 java android coding-style refactoring

这与 API 设计有关,在 Android 上:

我想拥有良好的编码风格,是的,我意识到这是非常次要的,但假设我有类似的东西:

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 函数,可以做不同的事情,当然,不返回 boolean 值。

所以我的问题是:这种特定类型的函数的专有名称是什么?

**更新:

首先,感谢您将其分成两个函数的建议。我不喜欢它的唯一原因是 someObject 可以有多种状态,导致它有效或无效或其他。因此,someObject.isCaseOne()someObject.isCaseTwo()。所以如果我要检查每个状态,我很可能必须为一个对象的多个状态创建一个枚举?我觉得这是在引入不必要的代码:(

最佳答案

我想我会使用两个单独的函数:一个用于验证,一个单独的函数在出现无效值时执行某些操作。

如果您真的想要组合它们,那么我会非常明确地说明,例如:validateAndIfInvalidThenX。 (即便如此,我也会有两个独立的函数,它只会调用它们。)

关于java - Android 什么是命名也执行逻辑的 boolean 函数的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20669754/

相关文章:

基于模式的 Java 字符串格式化

c# - 如何处理冲突的编码约定?

ios - NSKeyedArchiver 继承自 NSCoder 为什么会存在 NSKeyedUnarchiver?

php - 为什么一些编码指南会更改 PHP if/else 中的条件顺序?

java - 无法将 cacheDecorator 添加到 ehcache

java - JDBC Oracle 错误 : java. sql.SQLException: ORA-12592: TNS: 数据包错误

java - 照片删除后如何更新ArrayList <Bitmap>?

java - 如何在Android中初始化菜单库

android - Ajax 发布不工作 - Jquery Phonegap Android

android - ViewModel 数据绑定(bind)背景色