Ваша постановка проблемы относится к уровню программного модуля. Модуль обычно содержит много классов, и эти классы будут по-разному связаны друг с другом. Шаблоны предоставляют как взгляды на эти отношения, так и иногда советы о том, как можно добиться поведения, используя разные отношения между классами.
Вполне вероятно, что будет задействован какой-то конечный автомат, будь то простой конечный автомат, или шаблон объекта состояния, или интерпретатор правил, или процедурный автомат, созданный путем преобразования правил с использованием посетителя. ; то, вызваны ли состояния опросом источников данных или использованием наблюдателей, и может ли система быть составлена из более простых конечных автоматов, или необходим какой-то планировщик для одновременного запуска множества машин, все зависит от большей детализации, чем то, что приведено в вашем посте. ,