Closed NikolaiGit closed 8 years ago
Ist halt schwierig, ich wüsste keine Lösung, wie wir alle Methode in eine Klasse bekommen um sie in einem Interface zusammen zu packen, da wir ja multithreaden müssen
Ah wartet mal, wenn ich die Methode in die normale Klasse stecke und die aus der inneren aufrufen, dann müsste das doch gehen?! mal versuchen
hm das sollte gehen, das gefällt mir aber nicht so, da man dann, wenn man ein MessageServer-Objekt sonstwo erzeugen sollte, einfach die Methode, die die Antworten erstellen, aufrufen könnte. Da war die bisherige Lösung eleganter.
Habt ihr Vorschläge?
Per Aufgabenstellung ist doch gegeben, das es immer nur einen MessageServer gibt, oder liege ich da falsch?
Dementsprechend macht es da nicht so viel Sinn sich zu verenken um nicht geforderte Modularität zu implementieren. Zudem müsste der MessageServer mit seinem Interface dann acuh konform mit beliebigen Consumern und producern reden können. Und de facto machen Interfaces zwar häufig Sinn und unser Dozent mag diese, aber auch wenn es nicht so herausgestellt wurde hat er sie meist in typischen Pattern eingesetzt und da sehe ich hier keines.
Zudem müsste der MessageServer mit seinem Interface dann acuh konform mit beliebigen Consumern und producern reden können
Genau das meine ich. Definieren wir die Schnittstelle durch ein Interface des MS genau genug, dann sollte das gehen. Ok ich sollte vlt erstmal solches außen vor lassen und auf das Wesentliche konzentrieren.
Dies bei Consumer und Producer umzusetzen war recht einfach (ich musste aus Gründen der Neutralität noch ein zwei Methoden umbenennen), doch bei MessageServer gibt's Probleme. Wie bzw. mit welchen Methoden erstelle ich das Interface, dass der Methodenname und die Beschreibung nichts über die Implementierung aussagen, aber genau definieren, was bei jedem MessageType geantwortet werden soll?
Also ich habe im Moment ein Interface MessageServerIF erstellt, dass eine einzige Methode vorschreibt:
`/**
aber da kommt halt nicht raus, wie der das zu beantworten hat.
Vorschlag: Die Beschreibung lautet: "waits for Messages from Producers or Consumers and responses them using the MessageHandlerIF" und wir erstellen halt nen zusätzliches MessageHandlerIF, welches durch die innere runnable Klasse implementiert wird und die ganzen Methoden vorschreibt.