GUI abhängig von den Attributen füllen!

Devil_Noe

Mitglied
Hi!

Ich hätte folgende Frage:

Ich habe ein Gui, eine Superklasse, drei Subklassen (a,b,c), die von der Superklasse geerbt haben.
Die Daten der Objekte sollen in Textfeldern der Gui abgebildet werden, jedoch haben alle unterschiedlichste Attribute, dh jedes Objekt versorgt andere Textfelder mit Daten und manche bleiben leer.

Meine bisherige Variante:

Ich habe in jeder der Klassen (a,b,c) eine Methode zum befüllen der Textfelder. Ich rufe mittels dem konkreten Objekt (durch die dynamische Bindung erkennt der Interpreter um welche Art Objekt es sich handelt) die Methode auf, sende das Gui mit, und lasse die entsprechenden Felder befüllen.

Meine Frage:

Da das nicht wirklich dem Generalisierungsprinzip entspricht, .... wie löse ich das richtig? Bei Bedacht auf die Tatsache, dass es nicht nur drei Subklassen sondern 1000 Subklassen sein könnten, kann ich doch nicht jedesmal mit instanceOf prüfen um welches Objekt es sich handelt, damit ich dann aktiv die richtige Füllmethode aufrufe, oder doch?

Unter welchen Stichwörtern kann ich das nachschlagen? Gibt es hier Entwurfsmuster?

Danke im voraus!
 
S

SlaterB

Gast
unten instanceOf, weiter oben 'dynamische Bindung', was ist es denn nun?

normalerweise hat man ein Interface und alle Klasse implementieren diese, dann die Interface-Methode aufrufen,
das ist 'dynamische Bindung' und da braucht man kein instanceof

Dynamische Bindung ? Wikipedia
 
B

bygones

Gast
irgendwie kommt mir hier deine Vererbung sehr komisch vor, wenn die alle Unterklassen "alle unterschiedlichste Attribute" haben... riecht n bisschen nach falscher Vererbung.
 

Devil_Noe

Mitglied
Altes Beispiel:

Superklasse Artikel:

Attribute: Name, Artikelnr, preis

Subklasse Buch, erbt von Artikel:

Attribute: Seitenanzahl, Autor

Subklasse CD, erbt von Artikel:

Attribute: Spieldauer, Interpret


Das Gui hat Felder für: Name, Preis, Artikelnr, Autor, Interpret, Seitenanzahl, ....


Je nachdem, welches Objekt ich betrachte, sollen nur die relevanten Felder (je nachdem was es eben ist) beladen werden. Da der Interpreter den dynamischen Typ des Objektes, das ich ausgewählt habe, zur Laufzeit erkennt, kann ich die jeweilige Methode in den Objekten Buch & CD implementieren.

Nur habe ich erklärt bekommen, daß dies so nicht richtig ist, da es die Verwendbarkeit des Objektes/der Klasse einschränkt.

Und unter dynamischem Binden verstehe ich (und auch Das java Handbuch), dass der Interpreter zur Laufzeit den dynamischen Variablentyp erkennt (der beim Codeerstellen nicht zwanggsläufig feststehen muss), und dadurch weiss, um welches Objekt (CD, oder Buch) es sich handelt und folglich natürlich auch die richtigen Methoden aufruft!
 
S

SlaterB

Gast
bei all dem wird also kein instanceof benötigt, soweit meine Frage,
und aus meiner Sicht ist 'dynamischem Binden' gut, eine der zentralen Grundlagen von allem

dass irgendwo, wo etwas ohne instanceof funktioniert, instanceof vorgeschlagen wird, habe ich glaube ich noch nicht gehört,
auch wird es kein Pattern zu instanceof geben, das ist generell nicht schön, um es nochmal zu sagen ;)

zu 'dynamischem Binden' an sich gibts auch kein Pattern, genau wie es zu Plus und Minus in der Mathematik keinen speziellen Algorithmus gibt,
ist die normalste Sache der Welt,
die meisten Pattern, die es ansonsten gibt, verwenden sicherlich das Binden, die Polymorphie
 

Devil_Noe

Mitglied
D.h., es ist üblich das so zu machen?

Ich hab gesagt bekommen, ich soll besser ein Mapping verwenden, das Objekt mit instanceOf prüfen, oder den Typ mit getClass abfragen und das, was daraus folgend zu tun ist, in einer Hash Tabelle hinterlegen. !!!????!!!!!?????
 
B

bygones

Gast
ok die Vererbung ist doch etwas geringer als ich bei deiner ersten Aussage dachte ... bygones

aber die GUI ist doch dann ziemlich wirr....

wenn ich mir als User ne Gui anschaue, die mir alle Bücher anzeigt und ich dann Felder von allen möglichen Artikeln angezeigt bekomme, die dann leer sind finde ich das mehr als merkwürdig. Warum etwas anzeigen was es nicht geben kann ?

Einzige sinnvolle Lösung aus meiner sicht sind dezidierte Views für die Artikel und nicht eine krude instanceof Lösung mit einer komischen Gui
 
S

SlaterB

Gast
es ist schwer zu beurteilen was dir da gesagt wurde, kann sein dass das für bestimmte Dinge gut ist,
wenn du dagegen nur eine Methode aufrufen willst, was sollte dann in der Hash-Tabelle abgelegt werden?
 

Devil_Noe

Mitglied
so wie ich das verstanden habe, sollte der Typ (also CD oder Buch) der Key sein, nach dem gespeichert und gesucht wird, und dadurch zur jeweils richtigen "Füllmethode" führen!

Bedeutet etwas schlampig formuliert:

Buch ...... Füll Textfeld 1 mit Seitenanzahl, Füll Textfeld2 mit Autor ,..... setze alle anderen "leer"
CD .... Füll Textfeld 3 mit Interpret, Füll Textfeld4 mit Abspielzeit, .... setze alle anderen leer
 
S

SlaterB

Gast
mit deinen Erklärungen könnte ich jetzt raten, dass die einzelnen Klassen keine GUI-Code haben,
und dass zu jeder Klasse dynamisch eine Methode mit dem GUI-Code bzw. ein Objekt mit einer Methode erzeugt werden muss,
welches dann auch abzuspeichern ist wenn es nicht jedesmal neu erstellt werden soll,

richtig verstanden?
hast du überhaupt schon die Klassen, haben diese GUI-Code?
na selbst wenn wäre der andere Vorschlag nicht undenkbar, dazu gibts bestimmt auch ein Pattern

edit:
z.B. Adapter (mit Delegation)
Adapter (Entwurfsmuster) ? Wikipedia
(wobei ich nur die ungefähre Struktur anschaue, dem Sinn nach ist das ja eher für andere Dinge, bin da auch nicht der Fachbegriff-Experte)

edit:
Presenter von
Model View Presenter ? Wikipedia
klingt gut, viel steht da aber nicht
 
Zuletzt bearbeitet von einem Moderator:

Devil_Noe

Mitglied
thnx erstmal!

also ich hab schon alles fix fertig.

"Datenobjekte" habe ich strikt vom GUI-Code getrennt --> es gibt in den DatenObjekten eben keinerlei GUI Code, ausser den Füllmethoden (und da überleg ich eben grad )!

Muss mir die Pattern mal angucken, wobei, eleganter kanns nicht werden. Seit ich GUI Code von Daten trenne (keine inneren, anonymen Klassen für ActionListener, damit ja nichts datenspezifisches in dem Gui geschieht, etc), wird alles überdimensional aufgeblasen!

aber danke für die mühe
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Termine (Datum erstellen), Abhängig von Intervallen Java Basics - Anfänger-Themen 0
P Variablen Variablen voneinander abhängig Java Basics - Anfänger-Themen 54
Zeekay Development Methoden Methoden Inhalt Abhängig vom Objekt? Java Basics - Anfänger-Themen 9
H Combobox abhängig von RadioButton Java Basics - Anfänger-Themen 4
G Objekt Instanziierung von Eingabe abhängig machen Java Basics - Anfänger-Themen 5
G JFreeChart | Plot updaten bei neuem Dataset | wahrscheinlich "Thread-abhängig" Java Basics - Anfänger-Themen 3
V ComboBox Ergebnisse abhängig von anderer ComboBox - Wie? Java Basics - Anfänger-Themen 7
R Anzahl der ineinander verschachtelten for-Schleifen von Variable abhängig machen Java Basics - Anfänger-Themen 5
FetterOtter JTable: ToolTipText-Anzeige abhängig von Zellengröße und Textlänge Java Basics - Anfänger-Themen 2
A Erste Schritte Steuer Berechnung, Alters Abhängig Java Basics - Anfänger-Themen 5
D Textfile lesen/schreiben abhängig vom inhalt Java Basics - Anfänger-Themen 6
A Methodenausführung abhängig von vordefiniertem Wert? Java Basics - Anfänger-Themen 20
M Zeitdifferenz von Ende - sleep(x) - Start von x abhängig Java Basics - Anfänger-Themen 6
M Schleife abhängig von Bedingung Java Basics - Anfänger-Themen 5
D Combobox mit array abhängig von anderer Combobox mit array Java Basics - Anfänger-Themen 4
C JMenuItems abhängig von Datensätzen in der DB Java Basics - Anfänger-Themen 3
G Scalieren eines Bildes, abhängig von der Fenstergröße Java Basics - Anfänger-Themen 10
I Vectoren abhängig voneinander sortieren Java Basics - Anfänger-Themen 17
D Über Button abhängig von Auswahl 2 versch. Fenster öffnen Java Basics - Anfänger-Themen 2
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
D Objekterzeugungen mit zur Laufzeit variierenden Attributen Java Basics - Anfänger-Themen 7
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
G String mit mehreren Attributen aufteilen Java Basics - Anfänger-Themen 6
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
D Objekte mit verschiedenen Attributen erstellen Java Basics - Anfänger-Themen 3
D Variablen Verwaltung von Attributen Java Basics - Anfänger-Themen 3
C Kunden mit Attributen hinterlegen Java Basics - Anfänger-Themen 6
F Vererbung von Attributen zwischen zwei Klassen Java Basics - Anfänger-Themen 6
O Objekte nach Attributen durchsuchen Java Basics - Anfänger-Themen 10
S Kopierkonstrukter eines Objekts mit final Attributen Java Basics - Anfänger-Themen 6
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
E Initialisierung von Attributen und Konstruktor Java Basics - Anfänger-Themen 0
L Vererbung Attributen der Oberklasse Attribute hinzufügen? Java Basics - Anfänger-Themen 3
H Datentypen Objekt mit wenig-bittigen Attributen Java Basics - Anfänger-Themen 8
F Interface Unterschied von Attributen und Methoden bei abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
D Attributen und Methoden, etwas vergessen? Java Basics - Anfänger-Themen 6
D Klasse erstellen mit vorgebenen Attributen udn methoden Java Basics - Anfänger-Themen 3
C Überdecken von Attributen und Sichtbarkeit von Variablen Java Basics - Anfänger-Themen 8
P Instanz mit allen Attributen ausgeben Java Basics - Anfänger-Themen 3
G Problem bei der Angabe von Attributen in einer Objekt-Klasse Java Basics - Anfänger-Themen 3
T Vererbung von Attributen und Methoden, Verständnisproblem Java Basics - Anfänger-Themen 4
H Singleton mit Attributen Java Basics - Anfänger-Themen 7
G Area mit Teil-Image füllen Java Basics - Anfänger-Themen 0
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4
sashady 2D-Array mit Zahlenmuster füllen Java Basics - Anfänger-Themen 4
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
T Array füllen Java Basics - Anfänger-Themen 11
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
J Combobox füllen mit Wertausgabe von andere Klasse Java Basics - Anfänger-Themen 3
A Array richtig füllen Java Basics - Anfänger-Themen 2
krgewb Array später füllen Java Basics - Anfänger-Themen 1
E Arrays nach best Muster füllen Java Basics - Anfänger-Themen 4
A Ein Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 4
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
neerual Feld mit Einsen und Nullen füllen und überschreiben Java Basics - Anfänger-Themen 1
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
B Array via Schleife mit ungeraden bzw geraden Zahlen füllen Java Basics - Anfänger-Themen 7
G Model mit Models füllen Java Basics - Anfänger-Themen 9
T Best Practice Liste geschickt füllen Java Basics - Anfänger-Themen 5
Bluedaishi Datum in Jtextarea füllen Java Basics - Anfänger-Themen 5
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
D Best Practice Objekt automatisch im Konstruktor füllen? Java Basics - Anfänger-Themen 9
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
A Methoden Array mit Methode nacheinander füllen Java Basics - Anfänger-Themen 3
T Arrays mit Schleife füllen Java Basics - Anfänger-Themen 11
D JComboboxen in Abhängigkeiten füllen Java Basics - Anfänger-Themen 7
K Array mit for-each Schleife füllen Java Basics - Anfänger-Themen 5
Z Array-Index einmalig je mit Random füllen Java Basics - Anfänger-Themen 7
K "Elegantes" Füllen eines Models? Java Basics - Anfänger-Themen 20
W String in einer Zeile mit Alphabet füllen? Java Basics - Anfänger-Themen 8
K String Array basierend auf int Array füllen Java Basics - Anfänger-Themen 2
Y Erste Schritte Spielfeld, Array füllen mit Treffern...?! Java Basics - Anfänger-Themen 3
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
N Arrays mit Zufallzahlen füllen und Statistiken berechnen Java Basics - Anfänger-Themen 5
K Zweidimensionales Array erstellen und zufällig mit 0 und 1 füllen Java Basics - Anfänger-Themen 11
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
W Erste Schritte füllen Attribute java Klasse in for Schleife und Array Java Basics - Anfänger-Themen 16
L Subklasse von ArrayList nur mit bestimmten Objekten füllen Java Basics - Anfänger-Themen 1
B Methoden Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 4
B Methoden 2D Arrays füllen Java Basics - Anfänger-Themen 3
C zwei dimensionales array mit "1 " füllen Java Basics - Anfänger-Themen 8
H zweidimensionales array füllen Java Basics - Anfänger-Themen 6
JG12111989 2D Array mit Array[] füllen Java Basics - Anfänger-Themen 21
J Array mit Zahlen füllen Java Basics - Anfänger-Themen 28
S JTable dynamisch mit Datenbankinhalten füllen Java Basics - Anfänger-Themen 6
W JTable mit einem JButton-Array füllen Java Basics - Anfänger-Themen 4
T Progressbar füllen? Java Basics - Anfänger-Themen 3
V Methoden Matrix als 1D Array mit Werten füllen Java Basics - Anfänger-Themen 12
R ActionListener mit for Schleife füllen. Java Basics - Anfänger-Themen 4
S JComboBox automatisch füllen Java Basics - Anfänger-Themen 3
L OOP Grafik in Circle Objekt füllen Java Basics - Anfänger-Themen 3
B Array erstellen,ausgeben,mit zufallszahlen füllen aber wie ? Java Basics - Anfänger-Themen 1
B Collections ArrayList füllen - Anfängerfrage Java Basics - Anfänger-Themen 1
M OOP Liste füllen mit Strings Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben