Как я могу уменьшить цикломатическую сложность этой функции в Java ?:Как уменьшить цикломатическую сложность в java?
public void execute() {
if (dx == 1 && dy == 0) { this.moveRight();}
if (dx == -1 && dy == 0) { this.moveLeft();}
if (dx == 0 && dy == -1) { this.moveUp();}
if (dx == 0 && dy == 1) { this.moveDown();}
if (dx == 1 && dy == -1) { this.moveUpRight();}
if (dx == 1 && dy == 1) { this.moveRightDown();}
if (dx == -1 && dy == -1) { this.moveLeftUp();}
if (dx == -1 && dy == 1) { this.moveDownLeft();}
}
как есть 8 методов, u необходимо иметь 8 условий, что sorta имеет смысл. btw, u, вероятно, хотите использовать оператор 'if, else if', потому что, как программа, каждый раз, когда выполняются все 8 условий – nafas
Является ли' moveUpRight() 'таким же, как' moveUp() '+' moveRight() '? – Berger
Мы не знаем, что делают эти методы. Возможно, 'moveUpRight' просто вызывает' moveUp(); moveRight(); ', возможно, нет. Без этого я не вижу способа уменьшить сложность. Если вы зададите этот вопрос, потому что что-то вроде сонара поднимает предупреждение, иногда полезно его игнорировать. – jhamon