#c# #java #state-pattern
#c# #java #шаблон состояния
Вопрос:
Это объект-оболочка? или сам объект состояния?
могу я, пожалуйста, посмотреть несколько примеров?
Ответ №1:
По сути, у вас будет бизнес-логика при изменении состояния. Это может включать триггеры «state_entered» и «state_leave». триггеры.
Возможно, вам захочется, чтобы «state_idle» запускался на случай, если состояние может войти само.
Для приведения примеров потребуется код с вашей стороны, на котором они будут основаны.
Ответ №2:
В шаблоне состояния бизнес-логика связана с переходами из одного состояния в следующее. У вас есть два варианта, и оба одинаково допустимы.
Логика изменения состояния может находиться в самих объектах состояния, что позволяет довольно легко добавлять новые объекты состояния в систему, но при этом более тесно связывает подклассы.
Или логика изменения состояния может находиться в контексте. Поэтому сами государства не осведомлены друг о друге. Добавление новых состояний потребует изменения контекста.
В Интернете есть несколько хороших ресурсов по шаблонам, которые могут дать вам хорошие примеры. Например, этот сайт. Или этот с конкретными примерами c #.
Ответ №3:
Пожалуйста, сформулируйте свой вопрос более конкретно, поскольку ответ может зависеть от конкретного варианта использования. Однако обычно я ожидаю, что состояния реализуют общий внутренний интерфейс, который используется объектом-оболочкой, который, в свою очередь, выполняет своего рода открытый интерфейс. Таким образом, бизнес-логика была бы разделена и, таким образом, в основном была бы размещена в обоих типах.