Я возвращаюсь к лучшему подходу и ценю чьи-либо советы по лучшим методам.
Я пишу действие, которое должно быть в состоянии выполнить положительный или отрицательный чек, где отрицательный чекпроверка на отсутствие, в отличие от наличия значения. Затем действие вернет результат, т.е. было ли действие успешным или нет.
Я пытаюсь определить, является ли наилучшим подходом создание двух действий: одного для положительных и одного для отрицательных проверок или передачи флага с ожидаемым результатом.
Используя простой репрезентативный пример - проверка, существует ли значение в массиве / списке:
Два метода:
checkArrayHasValue(value)
checkArrayDoesNotHaveValue(value)
возвращает:
CheckHasValueResult(value, outcome=Pass or Fail)
CheckDoesNotHaveValue(value, outcome=Pass or Fail)
соответственно.
Или:
checkArrayForValue(value, True)
where the method signature is:
checkArrayForValue(value: int, is_expected: bool)
, где результат:
CheckForValueResult(value, was_expected, outcome=Pass or Fail)
Любые мысли о двух подходах выше. Первый способ намного понятнее, если указать намерения кода. Но я склонен предпочесть, чтобы мои методы / команды представляли позитивное намерение, т.е. CheckHas или CheckFor в отличие от CheckDoesNotHave.