Отправка произвольных данных через несколько функций - PullRequest
1 голос
/ 19 февраля 2009

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

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

Я думал, что это возможно, используя dynamic_cast, но мне было интересно, есть ли лучший способ.

Ответы [ 2 ]

2 голосов
/ 19 февраля 2009

boost :: any может быть вам полезен в зависимости от того, что вы делаете.

1 голос
/ 19 февраля 2009

Если это действительно произвольно, то dynamic_cast - ваш лучший выбор. Если вы намерены, чтобы все части конечного автомата работали с конечным числом методов данных, было бы более элегантно, если бы все классы данных, которые вы передаете конечному автомату, наследовали от чисто виртуального класса, который описывает эти методы, затем выполните все проходящие через этот класс.

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