Мнения о состоянии конечного автомата (синглтон-паттерн и обмен сообщениями) - PullRequest
0 голосов
/ 19 сентября 2019

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

С системой обмена сообщениями это будет работать следующим образом: конечный автомат регистрирует прослушиватель событий для событий TO_CHANGE_STATE, а когда другому компоненту необходимо изменить один из stateTypes, он регистрирует событие, описывающее изменение состояния.StateMachine будет слушать эти изменения и соответственно изменять состояния.После изменения состояния StateMachine регистрирует событие STATE_CHANGED, описывающее изменение состояния.Все соответствующие компоненты с соответствующими слушателями будут получать уведомления об этом изменении состояния.

С Singleton было бы намного проще, просто getState (), setState () всякий раз, когда это необходимо.

Пока я читаю,Синглтоны не являются любимым шаблоном (или «антипаттерном») для многих, я понимаю все их недостатки, но я беспокоюсь о возможных ненужных накладных расходах, связанных с обменом сообщениями.Разве не уместно использовать Singleton в этом случае?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...