Entwurfs Entscheidungen

Status
Nicht offen für weitere Antworten.

risq

Neues Mitglied
Ich code das erste mal mit Java einer groesse Swing Applikation. Mein Problem im Design ist eigentlich immer das gleiche. Ich habe zuviel Funktionen in einer Oberklasse. Zwar ist die Programmlogik prinzipiell abgekoppelt von der UI, aber ich habe grundsaetzlich Schwierigkeiten zu verstehen wie die einzelnen Swing Komponenten am besten Informationen voneinander bekommen.

Beispiel: In einem Borderlayout passiert in meinem Haupt-JPanel (Darstellungszentrum) etwas, ein Status-Panel soll sich bei bestimmten Aktionen updaten und neu zeichen. Die beiden Panels sind unterschiedliche Klassen, aber der Statuspanel weiss nichts vom MainPanel, andersrum ebenso. Wo packe ich hier die Logik hin ? Ich packe sowas immer in den darueber liegenden MainFrame, aber sowas geht natuerlich nur bei kleinen Applikationen und ist einfach schlecht...ich weiss wahrscheinlich eine Anfaengerfrage

Kann mir jemand helfen, Tips geben ...usw.
 
B

Beni

Gast
Vorschlag: eine Controller-Klasse schreiben, wo sich alle Status-Panels anmelden können. Die Aktionen können dann ihre updates an diesen Controller schicken, und der sorgt für die weitere Verbreitung.
 

The_S

Top Contributor
Beni hat gesagt.:
Vorschlag: eine Controller-Klasse schreiben, wo sich alle Status-Panels anmelden können. Die Aktionen können dann ihre updates an diesen Controller schicken, und der sorgt für die weitere Verbreitung.

dito, wollte ich auch gerade vorschlagen :D .
 

risq

Neues Mitglied
Beni hat gesagt.:
Vorschlag: eine Controller-Klasse schreiben, wo sich alle Status-Panels anmelden können. Die Aktionen können dann ihre updates an diesen Controller schicken, und der sorgt für die weitere Verbreitung.

erstmal danke fuer die schnelle Hilfe. Koennt ihr mir das naeher beschreiben, wie sieht so eine Controller Klasse dann aus und was heisst genau "anmelden"
 

L-ectron-X

Gesperrter Benutzer
Anmelden heißt, eine Referenz auf das eigene (this, dieses) Objekt dem Controller zu übergeben, damit er weiß, bei "wem" er sich melden soll. Der Controller sollte dazu einen entsprechenden Konstruktor besitzen.
Außerdem sollten die Objekte, die sich beim Controller anmelden von einem Typ sein, was sich durch die Implementierung eines Interfaces in den sich anmeldenden Objekten erreichen lässt.
Intern kann der Controller eine Liste verwalten, in der alle angemeldeten Objekte gespeichert werden.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben