java - 如果可以提高可读性,冗余代码是否可以接受?

标签 java coding-style

我有以下代码来检查游戏单位是玩家还是敌人。这是仅有的两个类别。我可以删除 isEnemy 方法并像 if(!isPlayer) 一样对敌人运行所有检查,但我个人认为 if(isEnemy) 使代码的意图更加清晰。是否有任何既定的编码风格可以说明这种情况?

public boolean isPlayer(Unit unit) {
    return unit == player;
}

public boolean isEnemy(Unit unit) {
    for (Unit e : enemies) {
        if (unit.equals(e))
            return true;
    }
    return false;
}

最佳答案

对于您的情况,您只有两种可能的状态 - 他们要么是敌人,要么是玩家。如果他们是玩家,他们就不是敌人。最简洁的表达方式是 !isPlayer

如果您有其他可能的状态,那么您可能想要研究其他状态的某种枚举。

作为一般经验法则:Don't Repeat Yourself .如果您复制的代码的一部分发生了更改(可能是为了修复错误),那么您必须更改该错误的每一次出现。它可能会变成一场维护噩梦。

关于java - 如果可以提高可读性,冗余代码是否可以接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027514/

相关文章:

java - 获取有条件的重叠时间范围

php - 为什么在 PHP 中经常不鼓励使用 "#"注释?

c++ - 将双变量分配给动态双数组

language-agnostic - 风格问题 : if block in or around function?

javascript - 使用断言在 node.js 中进行防御性编程

java - 为什么人们使用 if(null == var) 风格的测试?

java - 依赖矩阵的生成

java - 重写 JPA @Embedded 列上的排序行为

java - 将 float 舍入到精度的问题

java - Netbeans 继续传输 Maven 存储库索引,即使我已禁用它