Некоторые причины, по которым boolean не следует использовать в качестве флага в структуре данных:
- Ограничение модели данных. habr.com Boolean может хорошо решать задачу на первый взгляд, но в долгосрочной перспективе может сильно ограничить модель данных. habr.com Например, флаг, показывающий, удалён ли пользователь, не позволяет различать разные жизненные состояния пользователя. habr.com
- Сложность логики. tproger.ru Использование булевых флагов может усложнить логику, ухудшить читаемость и масштабируемость кода. tproger.ru Это происходит, когда нужно обрабатывать зависимые друг от друга значения. tproger.ru
- Проблемы с безопасностью и читаемостью. tproger.ru nuancesprog.ru При использовании нескольких булевых переменных легко перепутать, какая из них за что отвечает. tproger.ru Также есть вероятность передать неправильное логическое значение, и компилятор не сочтёт это за ошибку. tproger.ru nuancesprog.ru
Вместо boolean-полей рекомендуется использовать другие типы данных, например перечисления (enums) или явные статусы. habr.com