Есть ли лучший способ обработать эти заявления if? - PullRequest
0 голосов
/ 12 марта 2019

Я пишу Java-приложение, которое строит графики для значений min / max / avg акселерометра и гироскопа в трех полях xyz. Я хотел бы иметь возможность построить каждый фактор независимо, то есть максимальное ускорение в поле X со средним ускорением в поле Z и т. Д.

Я использовал переключатели для min / max / avg и для ускорения / y / z и gyroscopex / y / z.

Я также думал о создании переключателей для min / max / avg для каждой переменной, но тогда у меня было бы 18 отдельных переменных.

Вот фрагмент моего кода:

if (selectionAccelX == 1 && selectionAccelY == 0 && selectionAccelZ == 0 && 
    selectionGyroX == 0 && selectionGyroY == 0 && selectionGyroZ == 0 && 
    selectionXAxis == 0) {

    Graphing graphing = new Graphing("Average AccelerationX");
    graphing.setAccelerationX(avgAccXSec);
    graphing.displayGraphing();
    graphing.pack();
    RefineryUtilities.centerFrameOnScreen(graphing);
    graphing.setVisible(true);
}

Есть ли более простой способ сделать это?

1 Ответ

1 голос
/ 21 апреля 2019

Ваш код отображает одну переменную (селектор переключателя) в другую переменную (селектор значения).Одним из возможных решений может быть

  • добавление перечисления (снова с 18 значениями)
  • привязка каждого значения перечисления к возвращаемому значению переключателя
  • добавить переключатель / регистр на основе возвращаемого значения, чтобы вызвать правильное поведение

Я предполагаю, что это не меньший код, но может быть более читабельным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...