Phoenixz
Lieutenant
- Registriert
- März 2004
- Beiträge
- 595
Hallo,
die Frage klingt zugegebenermaßen deutlich einfacher als sie wahrscheinlich ist. Auch denke ich mir, dass es nicht DIE Antwort gibt. Aber zunächst zu meinem Problem (was ich anhand eines einfachen Beispiel erklären werde, das jedoch zugegebenermaßen eher abstrakter Natur ist):
Angenommen ich habe eine Klasse Car die eine Liste von Door-Objekten enthält. Es ist anzunehmen, das in dieser Klasse mehrere Threads arbeiten und z.B. eine Tür öffnen
. Jetzt möchte ich einem Benutzer meiner Car-Klasse die Möglichkeit geben über Events mitzubekommen, wann eine Tür (Door-Objekt) geöffnet worden ist.
Dazu habe ich als Entwickler der Car-Klasse im Prinzip zwei (bis drei) Möglichkeiten:
1) Ich implementiere ein Opened-Event in der Door-Klasse.
2) Ich implementiere in meiner Car-Klasse ein DoorOpened-Event mit einer eigenen DoorOpenedEventArgs-Klasse, in der ich eine Referenz zum Door-Objekt ablege.
3) Ich implementiere sowohl 1) als auch 2).
Keine Frage, im Prinzip klappen alle drei Möglichkeiten ohne Probleme. Ich kann mir auch gut vorstellen, dass das ganze auch ein wenig vom Anwendungsszenario der Car-Klasse abhängig ist. Mich interessiert hierbei aber eher ob es eine Art „Empfehlung“ gibt. Ich habe mir selbst einige Gedanken dazu gemacht. Von der Semantik macht natürlich 1) am meisten Sinn. Aber das hat wiederum den Nachteil des der Benutzer für jedes Door-Objekt selbst einen EventHandler anmelden muss. Anders würde es mit 2) aussehen. Dort muss der Benutzer der Car-Klasse nichtmal zugriff auf die Door-Objekte haben, er kann einfach nur ein EventHandler für das DoorOpened-Event anmelden.
Aktuell arbeite ich an einer sehr großen Klassenbibliothek wo es quasi eine zentrale Klasse gibt. Und nun Frage ich mich ob ich da alle relevanten Events anbieten soll oder doch lieber in den jeweiligen Unterklassen.
Vielen Dank,
Daniel
die Frage klingt zugegebenermaßen deutlich einfacher als sie wahrscheinlich ist. Auch denke ich mir, dass es nicht DIE Antwort gibt. Aber zunächst zu meinem Problem (was ich anhand eines einfachen Beispiel erklären werde, das jedoch zugegebenermaßen eher abstrakter Natur ist):
Angenommen ich habe eine Klasse Car die eine Liste von Door-Objekten enthält. Es ist anzunehmen, das in dieser Klasse mehrere Threads arbeiten und z.B. eine Tür öffnen
Dazu habe ich als Entwickler der Car-Klasse im Prinzip zwei (bis drei) Möglichkeiten:
1) Ich implementiere ein Opened-Event in der Door-Klasse.
2) Ich implementiere in meiner Car-Klasse ein DoorOpened-Event mit einer eigenen DoorOpenedEventArgs-Klasse, in der ich eine Referenz zum Door-Objekt ablege.
3) Ich implementiere sowohl 1) als auch 2).
Keine Frage, im Prinzip klappen alle drei Möglichkeiten ohne Probleme. Ich kann mir auch gut vorstellen, dass das ganze auch ein wenig vom Anwendungsszenario der Car-Klasse abhängig ist. Mich interessiert hierbei aber eher ob es eine Art „Empfehlung“ gibt. Ich habe mir selbst einige Gedanken dazu gemacht. Von der Semantik macht natürlich 1) am meisten Sinn. Aber das hat wiederum den Nachteil des der Benutzer für jedes Door-Objekt selbst einen EventHandler anmelden muss. Anders würde es mit 2) aussehen. Dort muss der Benutzer der Car-Klasse nichtmal zugriff auf die Door-Objekte haben, er kann einfach nur ein EventHandler für das DoorOpened-Event anmelden.
Aktuell arbeite ich an einer sehr großen Klassenbibliothek wo es quasi eine zentrale Klasse gibt. Und nun Frage ich mich ob ich da alle relevanten Events anbieten soll oder doch lieber in den jeweiligen Unterklassen.
Vielen Dank,
Daniel