Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich versuche gerade meine absolut hässlichen Quellcode zu verbessern, doch irgendwie weiß ich nicht wie! Ich habe mehrere Klassen, die aufeinander zugreifen müssen, und wüsste gerne eine schöne Möglichkeit die alle miteinander bekannt zu machen. Gibt es da irgendwelche Modelle an die man sich halten kann?
Ohne deinen Code zu kennen, kann man dir nur schwer helfen. Allerdings wenn es darum geht, Abhängigkeiten zu vermeiden, dann nutz man DI-Frameworks(z.B. Guice)
MVC sieht schonmal ganz gut aus, aber damit ihr es etwas besser versteht:
Ich habe eine TDFramde Klasse, eine TDPanel Klasse eine TDMenuPanel Klasse usw.
Ich habe es bis jetzt so gelöst das die TDFrame Klasse einmal TDMenuPanel erzeugt und einmal TDPanel erzeugt und ihm das TDMenuPanel mitgibt, also TDPanel panel = new TDPanel(menuPanel);
Und das wohl keine elegante Methode sein wird, suche ich nach einer anderen (;
Hi,
Codedesign ist aber auch immer abhängig von der Semantik des Codes.
Was sollen die klassen denn genau machen?
Evtl tuts ja auch das Observer-Pattern.
Gruß
Ich denke mal das der Code für mein Problem nicht gut aufgebaut ist!
Die TDMenuPanel Klasse guckt z.B. ob auf ein bestimmtes Item geklickt wurde und setzt dann die Variable itemClicked = 1;
Dann muss die TDPanel Klasse die das Zeichnen übernimmt immer auf die Klasse zugriefen und abhängig von der Variable verschiedene sachen machen.
Aber auch andere Klassen müssen auf diese Variable zugreifen können, und deswegen müssen alle Klassen mit dieser bekannt gemacht werden.
Hi,
Hier würde sich dann wohl etwas in der richtung Observer/MVC anbieten.
Ein einfacher Ansatz wäre z.b. ein observer-interface für die Klassen die auf den Klick reagieren sollten.
Das TDMenuPanel kriegt dann jede klasse die es überwachen soll übergeben und speichert diese in einer Liste vom Typ des Observer-Interfaces. Wird dann ein Klick ausgelöst wird einfach auf jedem observer die entsprechende Reaktionsmethode aus dem Interface aufgerufen (natürlich müssen die observer-klassen das interface implementieren ).
Sollte das für deine Zwecke nicht ausreichend sein gibt es dazu auch eine Java-Implementierung: Observable (Java Platform SE 6) Observer (Java Platform SE 6)
Gruß