Gast
#4132202
Guten Morgen! Ich habe eine Frage zum Ansatz, wie ich am besten eine Bibliothek programmiere. Mein Ziel: Kommunikation mit einem Gerät über einen SerialPort. Das Funktioniert soweit. Bisher ist alles hinter die GUI programmiert und fest mit ihr verbunden. [Das heisst: Klick auf Button A führt z.B. einen Gerätescan aus. Dabei wird sequenziell ein Scan auf dem Bus abgearbeitet. Wenn ein Gerät antwortet, wird ein Eintrag in eine Liste gemacht und eine ListBox der GUI aktualisiert.] Jetzt würde ich gern die Verbindung von Kommunikationsfunktionen und GUI trennen. Ich stelle mir das so vor, wie einen "Stack", an den ich Aufgaben übergeben kann und der mir bestimmte Antworten / Ereignisse zurückgibt. Wie man merkt, bin ich kein C#-Profi - und ich frage mich nun, wie ich so eine Funktionalität am besten umsetze (mgl. erweiterbar, ...) Idee 1: Kommunikationsstack-Klasse programmieren, mit Funktionen, die man anstoßen könnte und dann immer vom Hauptprogramm auf Ergebnisse pollt. Idee 2: Events. Man stößt eine Kommunikationsstack-Funktion (z.B. "Scan for devices") an und erhält dann Events für jedes antwortende Gerät. Idee 3: So habe ich das schon öfter bei Java-Bibliotheken gesehen: Anstatt Events zu benutzen, erstelle ich in der Bibliothek Methodenrümpfe und im Programm, welches den Stack verwendet, werden dann "Overrides" erstellt für die "Events", die dann implementiert sein sollen. Mir ist nicht klar, wo die Vor- / Nachteile von 2./3. liegen und ich hoffe, Ihr könnt mir einen Hinweis geben, wie man so ein Problem am besten löst / wo ich mehr Informationen zur Herangehensweise finde. Vielen Dank schon im Voraus! Max