Rückkommunikation mit der ursprungsklasse
-
Hallo,
ich habe folgende Problematik: Eine Form-Klasse ruft eine A-Klasse auf. A-Klasse berabeitet daten und muss sie ja irgendwie an die ursprüngliche Form-Klasse (also an die klasse, die sie instanziiert hat) zurück senden. Ich weiß jedoch nicht wie. Daten sammeln und warten, bis die ursprüngliche Klasse sie abhohlt geht leider nicht, da ich ein Programm habe, das - nun ja - aus mehreren klassen besteht. Kann mir jemand helfen, wie ich Daten von verschiedenen Klassen an die ursprüngliche Form klassen ganz gleicht zurück senden kann?
Gruß,
Garry
-
Wenn Du GET/SET in der B-Klasse hast dann kannst DU aus der A-Klasse die Daten auslesen.
In der A-Klasse erzeugst DU ja eine Instanz der B-Klasse.
Das ist eine der vielen Möglichkeiten.
-
Er hat doch gesagt das die Form die Werte nicht abholen soll.
Du kannst eine Variable für deine Form in deine Klasse packen und dann darauf zugreifen.
-
Der Klasse A muss die Form Instanz irgendwie bekannt gemacht werden.
Z.B. indem Du beim Konstruktor Aufruf this über gibts (angenommen, Du erzeugst das Objekt der Klasse A in der besagten Form).Wenn Du jetzt das ganze noch über ein Interface entkoppelst ist das eine Variante des Observer Patterns.
Alternativ kannst Du ja auch (.NET) Events Implementieren oder generell mit Delegaten hantieren.
Simon
-
Andorxor schrieb:
Er hat doch gesagt das die Form die Werte nicht abholen soll.
Du kannst eine Variable für deine Form in deine Klasse packen und dann darauf zugreifen.
Das mag sein aber irgendwo muss er die Klasse aufrufen.
Selbst wenn er 100 Klassen hat muss er sich eben eine Einheitliche Schnitstelle dafür schreiben.
Den this übergeben ist keine gute Idee denn er trennt Daten nicht von GUI.
Er müsste dann jeder Klasse die Formklasse bekannt machen.
Wenn die Form Daten möchte dann soll sie sich diese auch holen.
Siehe MFC und DOC/VIEW.
In DOC werden die Daten abgelegt und in der View nur geholt,angezeigt bzw. verändert.
Weiters sagte ich es wäre eine Möglichkeit.
Besser ist es aber das Design zu überdenken und nicht jeder Klasse den this einer Form zu übergeben.