Getter mehrfach aufrufen -> ist das guter code?

KopaCoda

Neues Mitglied
Ich sehe hier alten Code von meinen Vorgängern, und mir fällt auf, das es hier wohl Mode ist, die getter lieber mehrfach aufzurufen, anstatt sich die Instanz zu holen. In anderen Programmiersprachen ist so etwas verpönt. Gibt es Vorteile das so zu machen?

Beispiel:

Java:
if (dataObjectTO.getProfile() != null) {
    dataObject.setProfileName(Utils.encodeHtml(dataObjectTO.getProfile().getProfileName()));
    if (dataObjectTO.getProfile().getFirstName() != null) {
        dataObject.setFirstName(Utils.encodeHtml(dataObjectTO.getProfile().getFirstName()).replace("\n", "<br/>"));
    }
    if (dataObjectTO.getProfile().getSecondName() != null) {
        dataObject.setSecondName(Utils.encodeHtml(dataObjectTO.getProfile().getSecondName()).replace("\n", "<br/>"));
    }
    if (dataObjectTO.getProfile().getCompanyName() != null) {
        dataObject.setCompanyName(Utils.encodeHtml(dataObjectTO.getProfile().getCompanyName()).replace("\n", "<br/>"));
    }
    dataObject.setCompanyLocation(Utils.encodeHtml(dataObjectTO.getProfile().getCompanyLocation()));
    dataObject.setCreationLocation(Utils.encodeHtml(dataObjectTO.getProfile().getCreationLocation()));
}

Warum nicht so:

Java:
private String encode(String plain){
    return Utils.encodeHtml(plain).replace("\n", "<br/>")
}
....
Profile profile = dataObjectTO.getProfile():
if (profile != null) {
    dataObject.setProfileName(Utils.encodeHtml(profile.getProfileName()));
    if (profile.getFirstName() != null) {
        dataObject.setFirstName(encodel(profile.getFirstName()));
    }
    if (profile.getSecondName() != null) {
        dataObject.setSecondName(encode(profile.getSecondName()));
    }
    if (profile.getCompanyName() != null) {
        dataObject.setCompanyName(encode(profile.getCompanyName()));
    }
    dataObject.setCompanyLocation(Utils.encodeHtml(profile.getCompanyLocation()));
    dataObject.setCreationLocation(Utils.encodeHtml(profile.getCreationLocation()));
}
 

mrBrown

Super-Moderator
Mitarbeiter
Nichts spricht gegen die zweite Variante, es spricht eher was dafür :)

Wenn man encode etwas ergänzt, kann man noch auf das if verzichten, das würde ich daran noch ändern...
 

httpdigest

Top Contributor
Ich würde vielleicht dem encode() einen `Supplier<String>` und `Consumer<String>` spendieren, und das ganze Ding "map" nennen:
Java:
static <T> void map(Supplier<String> from, Consumer<String> to) {
  String plain = from.get();
  if (plain != null) {
    to.accept(Utils.encodeHtml(plain).replace("\n", "<br/>"));
  }
}
Dann kann der Mapping-Code mit Method References so aussehen:
Java:
if (profile != null) {
  ...
  map(profile::getFirstName,  dataObject::setFirstName);
  map(profile::getSecondName, dataObject::setSecondName);
  ...
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
W Getter/Setter Java Basics - Anfänger-Themen 4
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
KogoroMori21 Objektvariable anderer Klasse übernehmen, Getter/Setter Java Basics - Anfänger-Themen 11
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
KogoroMori21 Getter und Setter Java Basics - Anfänger-Themen 5
O Instanzattribut per Getter Methode zuweisbar, warum? Java Basics - Anfänger-Themen 8
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
V getter/setter Garage Java Basics - Anfänger-Themen 12
M Getter einer PriorityQueue Java Basics - Anfänger-Themen 1
V Getter Methode Java Basics - Anfänger-Themen 38
S getter, setter in abstrakter Klasse oder lieber Unterklassen Java Basics - Anfänger-Themen 4
topi Kapselung getter und setter Java Basics - Anfänger-Themen 5
D Setter/Getter für Instanzvariablen praktisch? Java Basics - Anfänger-Themen 19
S Getter/Setter - Variablenklasse ? Java Basics - Anfänger-Themen 5
S getter and setter Java Basics - Anfänger-Themen 12
L Getter und Setter Java Basics - Anfänger-Themen 2
T Extrahiertes Objekt durch Getter bekommen Java Basics - Anfänger-Themen 2
M Generics getter und setter Methoden Java Basics - Anfänger-Themen 4
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
A getter Java Basics - Anfänger-Themen 3
E Methoden Objekte in Methode aufrufen ohne getter und setter? Java Basics - Anfänger-Themen 1
T Getter für Array Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
L Klassen - Getter & Setter Methoden Java Basics - Anfänger-Themen 2
D Erste Schritte Java - Setter und Getter Java Basics - Anfänger-Themen 1
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
P getter Java Basics - Anfänger-Themen 1
K Klassen Setter/Getter Java Basics - Anfänger-Themen 3
F OOP Schleifen und Probleme mit Setter und Getter Java Basics - Anfänger-Themen 1
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
M Getter Problematik mit ItemListener Java Basics - Anfänger-Themen 17
K Kapselung getter & setter Java Basics - Anfänger-Themen 11
S Array und Getter-Methode Java Basics - Anfänger-Themen 2
Avarion Getter von Super-Klasse funktioniert nicht Java Basics - Anfänger-Themen 10
J Frage zu Setter u. Getter Java Basics - Anfänger-Themen 7
T Variablen Getter-Setter vs Public Variable? Java Basics - Anfänger-Themen 5
Y Konstruktor - Setter/Getter Java Basics - Anfänger-Themen 3
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
D Ab wann getter und setter Java Basics - Anfänger-Themen 2
J Variable per Getter holen - wie ? Java Basics - Anfänger-Themen 2
K getter & setter Java Basics - Anfänger-Themen 6
C getter/setter Problem anscheinend Java Basics - Anfänger-Themen 13
D Getter Mehtode Unsicher Java Basics - Anfänger-Themen 6
G Erste Schritte Getter und Setter Java Basics - Anfänger-Themen 12
B Getter,Setter - Konstruktor überflüssig? Java Basics - Anfänger-Themen 26
N Sprite Methode (Getter, Setter, Konstruktor) Java Basics - Anfänger-Themen 9
S getter/setter aufrufen Java Basics - Anfänger-Themen 9
B Java getter/setter funktioniert nicht! Java Basics - Anfänger-Themen 7
X OOP Getter/Setter überschreiben den Wert ihrer Variablen nicht Java Basics - Anfänger-Themen 4
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
M Problem mit getter, liefert nur alte Werte Java Basics - Anfänger-Themen 6
V public Variablen vs Getter + Setter Java Basics - Anfänger-Themen 4
F Getter und Setter Java Basics - Anfänger-Themen 4
lulas[]args getter/setter umstellung Java Basics - Anfänger-Themen 6
El_Lobo Methoden Zu viele Getter- und Settermethoden - geht das einfacher? Java Basics - Anfänger-Themen 3
G Generics kein Zugriff auf getter eines Objekts Java Basics - Anfänger-Themen 4
B Klassen Getter-Setter vor neuem Klassenaufruf - wie? Java Basics - Anfänger-Themen 20
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
N OOP Getter, Setter und andere Probleme Java Basics - Anfänger-Themen 8
A OOP Getter und Setter Java Basics - Anfänger-Themen 18
MU5T4NG Getter und Setten bei GUI-Erstellung Java Basics - Anfänger-Themen 13
B Variablen keine Arrayübergabe für getter im Interface Java Basics - Anfänger-Themen 8
L Unterschied Konstruktor / Getter Setter Java Basics - Anfänger-Themen 13
L Setter und Getter für Arrays? Java Basics - Anfänger-Themen 4
N boolean bei Setter und getter methoden Java Basics - Anfänger-Themen 21
J int Wert mit getter holen und in String parsen Java Basics - Anfänger-Themen 5
O Universeller GETTER Java Basics - Anfänger-Themen 5
J Die Getter Methode Java Basics - Anfänger-Themen 6
J Getter und Setter auch intern benutzen - guter Stil? Java Basics - Anfänger-Themen 31
Houly Setter/Getter MEthoden testen Java Basics - Anfänger-Themen 4
P OOP Getter&Setter Methoden funktionieren nicht Java Basics - Anfänger-Themen 7
E [Erledigt] Schöner Code zur Reduktion von unzähligen Getter-Methoden Java Basics - Anfänger-Themen 2
H Setter-und-Getter-Konvention Java Basics - Anfänger-Themen 8
V Reflection API - getter und setter Java Basics - Anfänger-Themen 7
-horn- EINE setter/getter klasse aus mehreren klassen befüllen Java Basics - Anfänger-Themen 13
C Getter/Setter Java Basics - Anfänger-Themen 61
F 2 dimensionales Array getter Methode Java Basics - Anfänger-Themen 3
H Frage zu getter und setter Java Basics - Anfänger-Themen 5
S Unbenutzte/überflüssige Getter/Setter herausfinden? Java Basics - Anfänger-Themen 2
K Getter Java Basics - Anfänger-Themen 6
M getter/setter bei JTextField ? Java Basics - Anfänger-Themen 21
G warum Setter/Getter Java Basics - Anfänger-Themen 25
S In einer Liste auf getter und setter zugreifen Java Basics - Anfänger-Themen 6
S JTextField in anderer Classe mit getter Methode auslesen. Java Basics - Anfänger-Themen 2
M if oder verschiedene getter Java Basics - Anfänger-Themen 31
D next() Methode mehrfach verwenden Java Basics - Anfänger-Themen 1
F Session wird mehrfach erzeugt Java Basics - Anfänger-Themen 11
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
S Vererbung Java mehrfach Java Basics - Anfänger-Themen 10
kokojamboo92 char mehrfach ausgeben.. Java Basics - Anfänger-Themen 2
U Mehrfach verwendete Sub-Klassen richtig einbinden Java Basics - Anfänger-Themen 4
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
L Mit java ein wort mehrfach versetzt darstellen Java Basics - Anfänger-Themen 14
L LinkedList Comparable < > MEHRFACH implementieren? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben