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

21 Авг 2019 в 07:03
155 +1
0
Ответы
1

В данной ситуации лучше использовать второй вариант - автоматическое избежание перегрузки и уведомление об этом событии.

Этот подход более безопасен, так как предотвращает возможные ошибки пользователя, которые могут привести к перегрузке системы. Кроме того, он также более удобен для пользователя, так как GUI будет автоматически обновляться в случае изменения доступной мощности, что позволит избежать ошибок и конфликтов.

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

20 Апр в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 829 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир