Observer-Pattern hier passend?



  • Vielleicht kann mir ja jemand bei dieser Frage helfen.

    Mich quält schon länger die Frage, wie ich am besten mit der folgenden Situation umgehe:

    Ich habe einen Server, der neue Clients entgegen nimmt und diese in einem Container verwalten soll.

    Wie lasse ich nun am besten den Server wissen, dass der Client abgearbeitet wurde, und der Server diesen aus der Liste löschen kann.

    Ist das ein klarer Fall für das Observer-Pattern?



  • Ich würd einfach nen Referenzzähler nehmen.
    Ansonsten kann man sicherlich auch nen Observer/Listener nutzen.



  • Naja, ein Referenzzähler hiöft mir ja nicht wirklich weiter. Die Instanz der Client-Klasse muss sich ja so zu sagen selber aus der Liste löschen können.



  • Das halte ich aber für ein merkwürdiges Design, wenn ein Client sich quasi selbst verwaltet. Eigentlich sollte doch eher ein Client-Verwalter bzw -Benutzer die Machenschaften des Clients im Auge behalten, de Client steuern und sich um dessen Löschung sorgen, oder nicht?

    Hast du zufällig Lust und Zeit, das Scenario noch kurz zu konkretisieren (auch aus generellem Interesse an fremden Projekten)? 🙂



  • Ein Observer Pattern arbeitet eher in die andere Richtung...das wäre Beispielsweise, wenn dein Server sich abschaltet, dann teilt er allen gemeldeten clients mit, dass er die verbindung trennt.

    Es ist sehr ungewöhnlich, dass die Observer nachrichten versenden, vorallem weil das Observerpattern die abhängigkeiten so regelt, dass nur der Server die Clients kennt, und nicht umgekehrt.



  • kann der client nicht einfach ein ende-signal senden?


Anmelden zum Antworten