Donnerstag, 9. Juni 2016

Umgang mit Handlern

Wir sind uns immer noch nicht sicher, wie wir mit dem ArrivalHandler richtig umzugehen haben: Wir dürfen kein zusätzliches von der Robot-Komponente benötigtes Interface hinzufügen. Ist es denn dann möglich, aus arrived() heraus über das vom Robot benötigte Interface IMessageHandler eine Kommunikation mit dem Server anzustoßen?

Ich bin mir nicht ganz sicher, wie das "..dürfen kein zusätzliches ... benötigtes Interface hinzufügen" gemeint ist. Es ist zumindest so, dass Sie von uns eine fertige Komponente bekommen, die die genannten Interfaces auf die genannte Art und Weise anbietet. Wenn Sie zusätzliche Interfaces an unsere Komponente anbinden wollten, dann würden diese schlicht ignoriert werden.

Das bedeutet aber noch lange nicht, dass Sie nicht flexibel beim Umgang mit dem ArrivalHandler sind. Es handelt sich um ein Interface welches Sie implementieren können wie Sie mögen. Fix ist lediglich, dass der Kontrollfluss beim Aufruf von arrived() startet. Innerhalb von der von Ihnen implementierten arrived()-Methode können Sie dann unterschiedliche Strategien verfolgen. Entweder Sie erledigen alles innerhalb des Kontrollflussess der Methode (synchron) oder Sie führen z.B. eine Zustandsänderung herbei, die aus dem Hauptkontrollfluss des Roboters behandelt wird (asynchrone Verarbeitung). Überlegen Sie welche Vor- und Nachteile sich daraus ergeben könnten.

Das Anstoßen der Kommunikation erfolgt übrigens nicht über den IMessageHandler sondern über den IWlanAdapter (send(..)).

Für den IMessageHandler, der ebenfalls von Ihnen realisiert werden muss, gilt das gleiche wie für den ArrivalHandler.

Keine Kommentare:

Kommentar veröffentlichen