Должен ли я обернуть метод в оператор if или поместить оператор if внутри самого метода? - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть игровой цикл, который запускается 60 раз в секунду. Внутри этого цикла я делаю различные операции, которые в основном обрабатывают игровую логику. Это выглядит примерно так:

void Update()
{
    RunLogic();
}

void RunLogic()
{
    // running logic
}

Теперь я хочу вызывать RunLogic, только если условие истинно. Поэтому я добавляю оператор if.

void Update()
{
    if (condition == true)
    {
        RunLogic();
    }
}

void RunLogic()
{
    // running logic
}

Но это не выглядит хорошо, потому что это добавляет вложение. Так что попробуйте что-то вроде этого:

void Update()
{
    RunLogic();
}

void RunLogic()
{
    if (condition == false)
        return;
    // running logic
}

Теперь логика внутри, без вложенности из-за предложения охраны. Но сейчас трудно сказать, будет ли RunLogic работать постоянно, если посмотреть только на цикл обновления.

Подобные вещи заставляют меня переключаться между этими двумя вариантами, и я не могу согласиться ни с одним из решений.

Чтобы добавить, такие методы, как RunLogic, никогда не используются повторно в других местах, только внутри цикла обновления.

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