Wo gehören Annotations hin

G

Gast2

Gast
Hallo zusammen,

mal ne Frage welche Vor und Nachteile gibt es, wenn man z.B. bei JPA-Entities die Annotations an die Member Variablen macht? Oder an die getter Methoden? Oder ist das einfach nur Geschmacksache?
 
M

maki

Gast
Naja, beiom Persistieren geht es ja darum, den internen Zustands des Objetkes zu speichern, da sind Methoden ja etwas um die Ecke gedacht ;)

Dann muss man auch keinen extra Getter schreiben (falls nicht schon vorhanden) und keine Methoden mit Transient annotieren, dafür aber u.U. Attribute mit Transient markieren.

Ist zwar alles Geschmackssache, hat aber natürlich auch Implikationen.
 

musiKk

Top Contributor
Ich meine mal eine Präsentation auf infoq.com von einem der Spring-Entwickler(/Gründer?) gesehen zu haben, in dem er sagt, dass solche Informationen an die Methoden sollte, weil das dem objektorientierten Ansatz entspricht. Er hat generell beklagt, dass die Entwicklung (von Java?) diesbezüglich einen unguten Trend hinlegt.

Ich wollte das nochmal verifizieren, um sicherzustellen, dass ich das nicht komplett durcheinander bringe, aber ich finde die Präsentation gerade nicht mehr. Ist schon eine Weile her. Hat mich bisher aber auch nicht davon abgehalten, meistens die Attribute zu annotieren...

edit: Habs gefunden, es ist Are we there yet? vom Spring-Gründer Rod Johnson.
 
Zuletzt bearbeitet:
M

maki

Gast
er sagt, dass solche Informationen an die Methoden sollte, weil das dem objektorientierten Ansatz entspricht.
Naja, das sehe ich anders, um nicht zu sagen entgegengesetzt.

Wie gesagt, es geht ja um interne Zustände, da brauche ich weder Kapselung noch Information Hiding ;)
 

Landei

Top Contributor
Wenn man die Annotation an die Methode macht, braucht man immer auch einen Setter. Read-Only-Felder gehen also nur mit Annotations an Member-Variablen.
 

musiKk

Top Contributor
Ich will dazu gar nichts weiter sagen. Das führt ohnehin nur zu den immer gleichen Diskussionen (wie sie ja auch schon hier geführt wurden). Ich muss zugeben, dass ich schon lange darauf gewartet habe, diese Präsentation mal für so ein Argument zu verwenden. Immerhin wird Spring immer als Nonplusultra verkauft und da wird der Gründer ja wohl nicht so falsch liegen. Kannst Dir die Präsentation ja mal anschauen. Dauert aber ne Stunde. Andererseits ist ja auch gerade Ostern...
 
M

maki

Gast
Wollte nicht dir widersprechen, sondern dem Spring Typen :cool:

Finde Spring gut, denke aber dass Spring das es mittlerweile bessere Lösungen gibt wenn es um reine DI geht wie zB. Guice, die aber eben (noch?) nicht das ganze restliche "Ökosystem" mitbringen.
 
G

Gast2

Gast
Wollte nicht dir widersprechen, sondern dem Spring Typen :cool:

Finde Spring gut, denke aber dass Spring das es mittlerweile bessere Lösungen gibt wenn es um reine DI geht wie zB. Guice, die aber eben (noch?) nicht das ganze restliche "Ökosystem" mitbringen.

Ich schau mir grad das CDI an, muss sagen dass ich es nicht schlecht finde und eigentlich die gleichen Sachen (da geklaut oder abgeschaut :p ) kann als Spring, außer dass die Annotations halt anders heißen.
Aber ansonsten wenn man JEE6 verwendet gleich dabei ist und nichts mehr zusätzlich einpflegen muss.
 
G

Gast2

Gast
Naja, das sehe ich anders, um nicht zu sagen entgegengesetzt.

Wie gesagt, es geht ja um interne Zustände, da brauche ich weder Kapselung noch Information Hiding ;)

Ja ich finde es jetzt grad bei JPA Annotations sinnvoll, weil da sieht man auf einem Blick welche Variablen in der DB sind und welche nicht, sonst müsste man sich jede get Mehode anschauen und bei großen Klassen kann das schon unübersichtlich sein.
 

Ähnliche Java Themen

Neue Themen


Oben