Vorteile Reflection bezüglich MVC-Pattern

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo zusammen,

ich habe mir eine kleine Beispielapplikation unter der Verwendung des MVC-Patterns geschrieben. In dieser Applikation lasse ich eine Uhr fortlaufen. Diese läuft auch bisher fehlerfrei.

Jetzt kam mir die Idee eine Klasse zu schreiben, mit der ich beispielsweise mir die einzelnen Methoden des bzw. der Model zurückliefern kann. Dies geht logischerweise per Reflection. Die zurückgelieferten Methoden könnte man dann z.B. im Controller verwenden.

Nun stellt sich mir die Frage welche Vorteile das Reflection hat. Dazu habe ich im Netz folgendes gefunden: "Ein großer Vorteil des Reflection Musters ist die Möglichkeit der einfachen Anpassung und Erweiterung, ohne den Code manuell ändern zu müssen."

Daraus geht meiner Meinung nach nur hervor, dass wenn ich den Methodennamen beispielsweise später ändere, ich diese Änderung nur an der "Quelle" ändern muss. Weitere Änderungen wie z.B. Methodenaufrufe, bei den ich den neuen Methodennamen logischerweise auch ändern müsste, blieben mir erspart.

Da mein Code bisher in einem überschaubaren Rahmen blieb, kann ich mir derzeit keine weiteren Vorteile feststellen.

Es wäre daher nett, wenn ihr die Vorteile vielleicht ergänzen könntet, bzw. meine Ansicht korrigiert.
 

Wildcard

Top Contributor
Nein.
Wenn du nur mit Reflection auf dein Datenmodell zugreifst hast du vor allem tausende Fehlerquellen.
Wenn du konkrete Werte ändern wolltest, müsstest du immer den Namen der Setter Methode kennen.
Damit würdest du Refactoring, IDE Unterstützung, und vieles weiteres verlieren.
Reflection kann man von mir aus vor Persistierungsstrategien oder ähnliches einsetzen, aber sicher nicht so wie du das anscheinend vorhast.
Wie sollte den deiner Meinung nach entsprechender Code aussehen?
 
G

Guest

Gast
Wie der entsprechende Code aussieht kann ich leider im Moment nicht sagen. Mir waren die Vorteile halt nicht ganz klar. Wenn dadurch sehr viele mögliche Fehlerquellen entstehen, dann lass ich lieber die Finger davon.
Vielen Dank für deine Hilfe.
 

Wildcard

Top Contributor
Anders gefragt, was ist komfortabler?
Code:
object.setFoo(bar);
oder
Code:
//TODO: 100 catch Blöcke
Mehtod method = object.getClass().getMethod("setFoo",new Class[]{Bar.class});
method.invoke(object, new Object[]{bar});
Ist übrigens aus dem Kopf geschrieben, also sicherlich mit Syntaxfehlern => qed :wink:
 
G

Guest

Gast
Wildcard hat gesagt.:
Code:
object.setFoo(bar);
Keine Frage :D .

Ich mag mich vielleicht irren, aber wäre es nicht eine Möglichkeit für eine Schnittstelle zur Datenbank?
Angenommen ich habe eine Klasse C, die eine save()-Methode enthält, der ich ein Objekt zum Speichern übergebe.
(Objekt A oder B)

Die save()-Methode weiß natürlich nicht, ob es beispielsweise ein UPDATE oder ein INSERT durchführen muss.
Meinetwegen enthalten Objekt A und Objekt B jeweils eine save()-Methode, in der bei Objekt A ein INSERT und bei Objekt B ein UPDATE durchgeführt wird.

Die save()-Methode in der Klasse C führt einfach die save()-Methode des Objekts aus. Dort wird dann, wie bereits beschrieben, je nach Objekt, ein UPDATE oder INSERT durchgeführt.

Ist dies vielleicht ein sinnvoller Anwendungsfall? Das Beispiel vom ersten Post ist Schrott, geb ich zu :D .
 

Wildcard

Top Contributor
Für DB's werden meistens Persistenzframeworks wie zB Hibernate verwendet (die intern auch Reflection verwenden), oder Service Konzepte wie SDO.
Alles Sachen, um die man sich nicht selbst kümmern möchte, und auch den Reflection Code möchte man ganz bestimmt nicht selbst schreiben.
Rat von mir: Lass die Finger von Dingen von denen du nichts verstehst, aber irgendwo aufgeschnappt hast das sie 'hipp' sein sollen :wink:
 
G

Guest

Gast
Das schon, nur mein Ausbilder brachte mich auf die Idee, der jetzt im Urlaub ist :wink: . Ich habe bis jetzt auch keinen wirklichen Bedarf darin gesehen und wollte vorher erstmal den Sinn und Zweck davon in Erfahrung bringen. Es kann aber sicherlich auch nicht Schaden, wenn man weiß wie Hibernate das intern handhabt :D .

Vielen Dank nochmal.
 

Wildcard

Top Contributor
Wenn dich das Thema interessiert wirf mal einen blick in das Eclipse Modelling Framework.
Hier wird sehr elegant die Brücke zwischen dem generischem, reflektivem Zugriff und dem POJO Konzept geschlagen.
Auf Wunsch lässt sich das noch mit einer Prise OCL, SDO, einem Transaktions und Validierungsframework sowie einem Schuß SQL vermengen.
Alles dabei um ein sehr nettes Datenmodell zu backen...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Kompositum Vorteile Java Basics - Anfänger-Themen 4
F Thread Koordination (Vorteile/Nachteile) Java Basics - Anfänger-Themen 0
S Kann mir jemand kurz die Vorteile des Iterators erklaeren..? Java Basics - Anfänger-Themen 8
Povlsen84 Vorteile von MessageFormat Java Basics - Anfänger-Themen 5
G Neuerungen Java 6 bzw. Vorteile Java Basics - Anfänger-Themen 13
I Reflection: Suche Feld + in Unterklassen Java Basics - Anfänger-Themen 7
B Reflection ändern von Objekten in Objekten Java Basics - Anfänger-Themen 12
G Vererbung Sicherheitslücke? Reflection sieht members, die nicht sichtbar sein sollten?! Java Basics - Anfänger-Themen 11
S reflection und felder Java Basics - Anfänger-Themen 12
B .class-File mit Reflection auslesen Java Basics - Anfänger-Themen 8
X Parameterübergabe per Reflection Java Basics - Anfänger-Themen 10
U Reflection Benutzung Java Basics - Anfänger-Themen 2
J Reflection Java Basics - Anfänger-Themen 6
B Reflection Java Basics - Anfänger-Themen 8
S Datentypen Reflection Cast anhand eines Strings? Java Basics - Anfänger-Themen 7
X reflection api Java Basics - Anfänger-Themen 5
R Alle Klassen ermitteln, die Interface implementieren / Reflection Java Basics - Anfänger-Themen 51
lumo java reflection Java Basics - Anfänger-Themen 7
J Reflection Java Basics - Anfänger-Themen 2
J Reflection Java Basics - Anfänger-Themen 3
P Reflection - Class Not Found Exception Java Basics - Anfänger-Themen 3
A Frage zu Reflection Java Basics - Anfänger-Themen 8
A abgeleitete Klassen mit Reflection holen Java Basics - Anfänger-Themen 2
M Reflection Java Basics - Anfänger-Themen 8
W Problem bezüglich reflection Java Basics - Anfänger-Themen 11
S verschiede constructoren über reflection Java Basics - Anfänger-Themen 3
V Reflection API - getter und setter Java Basics - Anfänger-Themen 7
JFeel-x Frage zu reflection Java Basics - Anfänger-Themen 12
J Reflection Basic Java Basics - Anfänger-Themen 26
C Reflection Exceptions behandeln Java Basics - Anfänger-Themen 6
T von Reflection zum Thread? Java Basics - Anfänger-Themen 5
G Reflection - Klasse laden aus anderem Verzeichnis Java Basics - Anfänger-Themen 4
L Reflection-fehlermeldung Java Basics - Anfänger-Themen 12
E Klassenaufrufe dynamisch mit Reflection Java Basics - Anfänger-Themen 4
S wer oder was ist reflection? Java Basics - Anfänger-Themen 11
berserkerdq2 Wo finde ich in der Java Api die Notation zu Threads bezüglich Synchronized? Java Basics - Anfänger-Themen 14
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
H Frage bezüglich Arrays Java Basics - Anfänger-Themen 5
Q Variablen Frage bezüglich Programmierverständnis Java Basics - Anfänger-Themen 24
H Frage bezüglich einer Klasse Java Basics - Anfänger-Themen 2
N Datentypen Frage bezüglich unbekannter Fehlermeldungen. Java Basics - Anfänger-Themen 1
S Erste Schritte Frage bezüglich "BufferedReader" Java Basics - Anfänger-Themen 3
X Problem bezüglich Key Listener Java Basics - Anfänger-Themen 3
StupidAttack Frage bezüglich der OOP Java Basics - Anfänger-Themen 14
W Unterschied JFrame und JLabel bezüglich Layout? Java Basics - Anfänger-Themen 2
J Winzige Frage bezüglich leeren Zellen (HSSF) Java Basics - Anfänger-Themen 14
A Theoriefrage bezüglich Arrays Java Basics - Anfänger-Themen 4
G Frage bezüglich einer Variablenänderung Java Basics - Anfänger-Themen 5
M Frage bezüglich string compare Java Basics - Anfänger-Themen 6
S Frage bezüglich der Funktionalität Java Basics - Anfänger-Themen 6
semaJ Frage bezüglich String Operation ! Java Basics - Anfänger-Themen 3
N Anfängerfrage bezüglich Speicherverwaltung Java Basics - Anfänger-Themen 3
G Frage bezüglich eines Variablenscopes Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben