Hi,
ich habe immer wieder folgendes Szenario:
Ich habe zum Beispiel eine Klasse KundenListe. Diese Klasse enthält alle Kunden meines Betriebes. Das können natürlich gerne auch mal 100000 sein.
Sagen wir in dieser Klasse gibt es nun eine Methode getKundenIrgendwas() (Total egal was die macht) welche aber ein paar Sekunden braucht um fertig zu werden (Große Datenbank-Zugriffe etc).
Also muss ich ein Progress-Fenster aufmachen und asynchron die Daten bearbeiten.
Sagen wir die Klasse KundenController würde also die Methode getKundenIrgendwas aufrufen um an das Ergebnis zu kommen.
Damit ergeben sich 2 Fragen:
1) Wer öffnet nun das Progress-Fenster ? Der Kundencontroller oder doch besser die Kundenliste selber. Zweiteres wäre eigentlich logischer, da ich die Methode ja auch diurchaus von anderen Klassen aufrufen kann und dann müsste ich doppelten Code zum Öffnen des Fensters schreiben.
2) Wie benachrichtige ich den KundenController, dass getKundenIrgendwas() fertig ist? Klar, das sauberste wäre hier irgendeine Form von Listener aber eigentlich ist das doch totaler Overhead für fast jede Klasse auch eine zusätzliche Listenerklasse anzulegen, die dann in den meisten Fällen eh nur von einer aufrufenden Klasse benutzt wird.
Also wie löst ihr sowas?
Gruß
Claus
P.S. Das mit den Kunden ist jetzt nur ein an den Haaren herbeigezogenes Beispiel. Bitte jetzt keine Konzeptänderungen vorschlagen wie man Kunden verwaltet
ich habe immer wieder folgendes Szenario:
Ich habe zum Beispiel eine Klasse KundenListe. Diese Klasse enthält alle Kunden meines Betriebes. Das können natürlich gerne auch mal 100000 sein.
Sagen wir in dieser Klasse gibt es nun eine Methode getKundenIrgendwas() (Total egal was die macht) welche aber ein paar Sekunden braucht um fertig zu werden (Große Datenbank-Zugriffe etc).
Also muss ich ein Progress-Fenster aufmachen und asynchron die Daten bearbeiten.
Sagen wir die Klasse KundenController würde also die Methode getKundenIrgendwas aufrufen um an das Ergebnis zu kommen.
Damit ergeben sich 2 Fragen:
1) Wer öffnet nun das Progress-Fenster ? Der Kundencontroller oder doch besser die Kundenliste selber. Zweiteres wäre eigentlich logischer, da ich die Methode ja auch diurchaus von anderen Klassen aufrufen kann und dann müsste ich doppelten Code zum Öffnen des Fensters schreiben.
2) Wie benachrichtige ich den KundenController, dass getKundenIrgendwas() fertig ist? Klar, das sauberste wäre hier irgendeine Form von Listener aber eigentlich ist das doch totaler Overhead für fast jede Klasse auch eine zusätzliche Listenerklasse anzulegen, die dann in den meisten Fällen eh nur von einer aufrufenden Klasse benutzt wird.
Also wie löst ihr sowas?
Gruß
Claus
P.S. Das mit den Kunden ist jetzt nur ein an den Haaren herbeigezogenes Beispiel. Bitte jetzt keine Konzeptänderungen vorschlagen wie man Kunden verwaltet