Если целью является удобочитаемость, используйте две отдельные функции.
Мы могли бы иметь: ShowXYZ()
и HideXYZ()
или ToggleXYZ(bool show)
. Последний будет отображаться в коде только как ToggleXYZ(true)
или ToggleXYZ(false)
, что делает не совсем понятным, что делает каждый из них. Размещение их как двух отдельных функций не оставляет сомнений относительно того, что функция должна делать.
Я собираюсь немного расширить вопрос, который вы задали, так как есть другой вариант. Ради расширяемости в случае, когда существует два или более состояния, вы можете воспользоваться языком, который вы используете (я даю примеры в C #, поэтому YMMV).
Таким образом, в случае C # вы можете создать enum
для предоставления различных состояний и повышения читабельности вашего кода. Вы можете иметь что-то вроде:
SetXYZState(XYZState.Show)
или
SetXYZState(XYZState.MakeWaffles)
, что очень ясно при использовании той же сигнатуры функции.
Это может быть применено к ситуации, когда у вас когда-либо будет только два состояния (или даже только одно, если вы можете расширить его позже), но затраты на его настройку, вероятно, больше, чем просто написание двух функций.