2012-04-27 3 views
2

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

Государственная машина будет приятной, но, похоже, слишком много возможных состояний. Как новичок, я действительно реализую шаблоны проектирования здесь и там. Но я проиграл об общем дизайне. Как создать структуру для всех «событий», которые поддерживают потоковое вещание в моем приложении?

ответ

1

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

2

Комментарий «слишком много штатов» - это просто отражение вашего собственного наблюдения, что это беспорядок.

В хорошем дизайне вы разложите систему на несколько независимых конечных машин. Система с 20 состояниями может быть лучше представлена ​​системой с 4 состояниями и 5 состояниями.

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