Erweitern eines JFrames

8

Was sind die Vor- und Nachteile von Erweitern eines JFrame und nicht Erstellen eines neuen JFrames ?

?

Zum Beispiel:

%Vor%

oder

%Vor%     
Anonymous181 04.05.2012, 04:18
quelle

4 Antworten

9

Sie sollten keine Klasse erweitern, es sei denn, Sie möchten die Funktionalität tatsächlich erweitern. In dem Beispiel, das Sie gezeigt haben, sollten Sie Option 2 verwenden, da Option 1 ein Missbrauch der Funktion extend ing ist.

Mit anderen Worten: Solange die Antwort auf die Frage Test ist JFrame ? ist NEIN , sollte sie JFrame nicht erweitern.

    
MByD 04.05.2012, 04:22
quelle
8

Pros, JFrame (oder irgendeine andere Swing-Komponente) nicht zu erweitern:

  • Vermeiden Sie unbeabsichtigte Methodenüberschreibungen. Ich bin schon mehrmals darauf eingegangen, zuerst als ich meine Methoden int getX() und int getY() angegeben habe. Probieren Sie es aus und Sie werden einige nicht so abnormale Verhaltensweisen sehen.
  • Vereinfachen Sie die verfügbaren Methodenoptionen, wenn Sie Eclipse oder NetBeans nur für die von Ihnen erstellten Methoden verwenden. Das ist eigentlich mein Lieblingsvorteil.
  • Richten Sie Ihre GUI so ein, dass JPanels statt JFrames erstellt werden, wodurch die Flexibilität der Bereitstellung um das Hundertfache gesteigert wird.
  • Und am wichtigsten, nur das zu belichten, was belichtet werden muss.
Hovercraft Full Of Eels 04.05.2012 04:24
quelle
2

Wenn ich JFrame erweitern möchte, möchte ich meine aktuelle Jframe-Klasse ändern / anpassen und so kann die Unterklasse diese angepasste Implementierung verwenden.

Wenn sich in der JFrame-Klasse nichts ändern soll, verwenden Sie einfach wie im zweiten Snippet, das Sie in Ihrem Code angegeben haben. Mit Benutzung meine ich durch Erstellen einer anderen JComponent (Schaltfläche / Label für Beispiele) usw. in einem JPanel und ein Objekt erstellen Testen Sie und legen Sie das JFrame contentPane für dieses Objekt fest. etwas wie

%Vor%     
Jasonw 04.05.2012 04:33
quelle
0

Eine der Regeln von OOD: Wenn Sie die Klassen nicht erben (erweitern) können, übernehmen Sie deren nicht.

Vererbung erhöht die Komplexität und Verbundenheit des Programms und führt möglicherweise zu neuen Fehlern. In Ihrem Fall gibt es keine Gründe, den Unterricht zu verlängern.

Sie sollten Klassen nur dann erweitern, wenn Sie Zugriff auf geschützte Elemente benötigen und / oder polymorphes Verhalten erhalten (virtuelle Methoden überschreiben).

    
Alexander 04.05.2012 04:31
quelle