2012-04-27 3 views
2

개발할 소프트웨어를 상위 레벨 구조로 찾는 방법을 찾고 있습니다. (안드로이드 용이지만 여기서는 중요하지 않습니다.) 내 소프트웨어는 센서, 사용자 상호 작용, 원격 메시지 및 타이머 이벤트의 이벤트를 기반으로합니다. 나는 그것이 입력의 어떤 조합이 문제를 일으키는 지 감독 할 수없는 혼란이되고있는 것이 아닌가 걱정된다.다중 입력 소프트웨어 설계

상태 시스템이 좋지만 가능한 상태가 너무 많습니다. 초보자로서, 나는 여기 저기에 디자인 패턴을 구현합니다. 그러나 나는 전체적인 디자인에 대해 잃어버린다. 내 응용 프로그램으로 스트리밍을 계속하는 모든 "이벤트"에 구조를 어떻게 제공합니까?

답변

1

로봇 소프트웨어가이 문제를 어떻게 처리하는지 살펴볼 수 있습니다. 로봇도 비슷한 문제에 직면 해 있습니다.

2

"너무 많은 주"는 자신의 의견을 반영한 것으로 엉망입니다.

좋은 디자인으로 여러 개의 독립적 인 Finite State Machines에서 시스템을 분해합니다. 20 상태 시스템은 4 상태 및 5 상태 시스템으로 더 잘 표현 될 수 있습니다.

예를 들어 모든 입력을 단일 입력 대기열로 리팩토링 할 수 있습니다. 이 대기열은 계속 발생하는 처리와는 별도로 자체 상태 (비어 있고, 부분적으로 가득 차며, 전체)를 갖습니다.