Frage

Ich bin Refactoring einen Code für eine Zuordnung - derzeit der Ansicht, hat viele Schaltflächen und Menüs und eine Aktion Hörer, die, was durch die Verwendung event.getSource () zu tun entscheidet. Von dem, was ich gelesen habe, scheinen die Menschen ist es besser für jede GUI-Komponente zu denken, seine eigene Aktion Zuhörer haben, vielleicht durch eine Art Fabrik geschaffen. Jedoch anders als es den Code ein bisschen was andere Vorteile Reinigung geht diese geben - auch dies nicht viel mehr Objekte bedeuten wird auf dem Heap und könnte die Leistung auswirken

Danke,

Aly

War es hilfreich?

Lösung

separate Hörer verwenden bedeutet, dass Sie sollten nicht boolean Tests durchführen müssen, um zu bestimmen, was in Ihrem Hörer getan werden soll. Dies hat zwei Vorteile

  • Zuerst macht es den Code ein bisschen schneller laufen.

  • Second es verbessert die Wartbarkeit und Erweiterbarkeit des Codes. Wenn Sie eine neue Komponente hinzufügen müssen, müssen Sie nicht vorhandene Methoden ändern.

Wenn Sie versuchen, einen Zuhörer zu haben (oft das Applet oder die Anwendung Objekt selbst) als Listener für mehrere Komponenten, werden rückgängig gemacht Sie den Grund Dispatch, die den Aufrufs von Methoden von zentraler Bedeutung ist, und setzen Versand von Hand. Dies erfordert, dass irgendeine Art von Schaltmechanismus der verschiedenen Komponenten, deren Ereignisse zu unterscheiden verwendet werden Sie umgehen. Das System ist besser ausgestattet, dies zu tun, als Sie sind. Diese Schalterstruktur ist sowohl fehleranfällig und schwierig zu warten, da das Programm wächst. Lassen Sie das Dispatching an das System.

Quelle: Patterns für Java Veranstaltungen

Andere Tipps

Es ist ein Kompromiss. Code mit einem Bündel von if auf der Quelle hässlich angesehen, während Massen von Zuhörern Ihr Gedächtnis Krempel kann und einen negativen Einfluss auf die Leistung haben.

die Wahl, ich in der Regel für gehen, was die Menge an Code minimiert ich zu schreiben, da weniger Code bedeutet in der Regel weniger Möglichkeiten für Fehler.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top