Ich habe den folgenden Code, um zu überprüfen, ob eine Spieleinheit ein Spieler oder ein Feind ist. Dies sind die einzigen zwei Kategorien. Ich könnte die isEnemy-Methode löschen und alle Prüfungen für den Feind ausführen als ob (! IsPlayer), aber ich persönlich fühle, dass, wenn (isEnemy) die Absicht des Codes klarer macht. Gibt es etablierte Codierungsstile, die etwas über diese Art von Situation zu sagen haben?Ist redundanter Code akzeptabel, wenn er die Lesbarkeit verbessert?
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;
}
IMHO Wenn Sie Code mit einem Zweck schreiben, ist alles, was Sie hinzufügen, was nicht dort sein muss, verwirrend. Sie können mehr Zeit damit verschwenden, den Zweck von etwas zu finden, das keinen Zweck hat, als etwas, das offensichtlich einen Zweck hat. In Ihrem Beispiel ist nicht klar, wie eine Methode durch die andere ersetzt werden kann. –