где работает бизнес-логика при использовании шаблона состояния?

#c# #java #state-pattern

#c# #java #шаблон состояния

Вопрос:

Это объект-оболочка? или сам объект состояния?

могу я, пожалуйста, посмотреть несколько примеров?

Ответ №1:

По сути, у вас будет бизнес-логика при изменении состояния. Это может включать триггеры «state_entered» и «state_leave». триггеры.

Возможно, вам захочется, чтобы «state_idle» запускался на случай, если состояние может войти само.

Для приведения примеров потребуется код с вашей стороны, на котором они будут основаны.

Ответ №2:

В шаблоне состояния бизнес-логика связана с переходами из одного состояния в следующее. У вас есть два варианта, и оба одинаково допустимы.

Логика изменения состояния может находиться в самих объектах состояния, что позволяет довольно легко добавлять новые объекты состояния в систему, но при этом более тесно связывает подклассы.

Или логика изменения состояния может находиться в контексте. Поэтому сами государства не осведомлены друг о друге. Добавление новых состояний потребует изменения контекста.

В Интернете есть несколько хороших ресурсов по шаблонам, которые могут дать вам хорошие примеры. Например, этот сайт. Или этот с конкретными примерами c #.

Ответ №3:

Пожалуйста, сформулируйте свой вопрос более конкретно, поскольку ответ может зависеть от конкретного варианта использования. Однако обычно я ожидаю, что состояния реализуют общий внутренний интерфейс, который используется объектом-оболочкой, который, в свою очередь, выполняет своего рода открытый интерфейс. Таким образом, бизнес-логика была бы разделена и, таким образом, в основном была бы размещена в обоих типах.