Какой вариант разделения ответственности лучше? Доброго времени суток. Такая ситуация: есть некое устройство в игре, которое может потреблять некую мощность и генератор, который может ее производить. Уровень потребления может меняться от min до max и 0 (выкл), есть управление из GUI, например. Устройству поступила команда работать на 20 МВт, а доступно от генератора только 15МВт. Есть два варианта действий:Устройство выбросит исключение. Значит, условный интерфейс должен самостоятельно проверять достаток энергии или по крайней мере "спросить" у распределителя мощности, а хватит ли, и если да, то дать юзеру сдвинуть ползунок подальше.Устройство автоматически избежит перегрузки и поставит себе максимально возможное питание, в данном случае 15МВт, ну и какое-нибудь событие PowerLevelChanged вызовет, конечно. GUI по этому событию обновится, в результате сдвинуть ползунок дальше игрок не сможет - его будет отбрасывать назад. Аналогично и с вкл/выкл - можно просто не включать, если доступная мощность меньше min, а можно выкинуть исключение "чего включаешь, мощи нет". В проекте возникла путаница этих двух подходов - в одном месте кидаю исключение, в другом "отмалчиваюсь" - а как лучше с точки зрения принципов проектирования и т.д.? Сам склоняюсь ко второму подходу, т.к. он кажется проще и лаконичнее (например, GUI будет "самобалансироваться" без всяких дополнительных проверок с его стороны), но стало интересно, как люди делают.
В данной ситуации лучше использовать второй вариант - автоматическое избежание перегрузки и уведомление об этом событии.
Этот подход более безопасен, так как предотвращает возможные ошибки пользователя, которые могут привести к перегрузке системы. Кроме того, он также более удобен для пользователя, так как GUI будет автоматически обновляться в случае изменения доступной мощности, что позволит избежать ошибок и конфликтов.
Таким образом, использование событий и автоматического регулирования питания устройства в данной ситуации будет более эффективным и надежным способом управления потреблением энергии.
В данной ситуации лучше использовать второй вариант - автоматическое избежание перегрузки и уведомление об этом событии.
Этот подход более безопасен, так как предотвращает возможные ошибки пользователя, которые могут привести к перегрузке системы. Кроме того, он также более удобен для пользователя, так как GUI будет автоматически обновляться в случае изменения доступной мощности, что позволит избежать ошибок и конфликтов.
Таким образом, использование событий и автоматического регулирования питания устройства в данной ситуации будет более эффективным и надежным способом управления потреблением энергии.