Ich habe jetzt einige Java-Anwendungen implementiert, bisher nur Desktop-Anwendungen. Ich bevorzuge die Verwendung unveränderlicher Objekte zum Weitergeben der Daten in der Anwendung, anstatt Objekte mit Mutatoren (Setter und Getter ) zu verwenden, die auch als JavaBeans bezeichnet werden.
Aber in der Java-Welt scheint es viel üblicher zu sein, JavaBeans zu verwenden, und ich kann nicht verstehen, warum ich sie stattdessen verwenden sollte. Persönlich sieht der Code besser aus, wenn er nur unveränderliche Objekte behandelt, anstatt den Status ständig zu ändern.
Unveränderliche Objekte werden auch in Punkt 15 empfohlen : Veränderbarkeit minimieren , Effektives Java 2ed .
Wenn ich ein Objekt Person
als JavaBean implementiert habe, würde es so aussehen:
public class Person {
private String name;
private Place birthPlace;
public Person() {}
public setName(String name) {
this.name = name;
}
public setBirthPlace(Place birthPlace) {
this.birthPlace = birthPlace;
}
public String getName() {
return name;
}
public Place getBirthPlace() {
return birthPlace;
}
}
Und das gleiche Person
implementiert als unveränderliches Objekt:
public class Person {
private final String name;
private final Place birthPlace;
public Person(String name, Place birthPlace) {
this.name = name;
this.birthPlace = birthPlace;
}
public String getName() {
return name;
}
public Place getBirthPlace() {
return birthPlace;
}
}
Oder näher an einem struct
in C:
public class Person {
public final String name;
public final Place birthPlace;
public Person(String name, Place birthPlace) {
this.name = name;
this.birthPlace = birthPlace;
}
}
Ich könnte auch Getter im unveränderlichen Objekt haben, um die Implementierungsdetails zu verbergen. Aber da ich es nur als benutze struct
, überspringe ich lieber die "Getter" und halte es einfach.
Ich verstehe einfach nicht, warum es besser ist, JavaBeans zu verwenden, oder ob ich mit meinen unveränderlichen POJOs weitermachen kann und sollte?
Viele der Java-Bibliotheken scheinen JavaBeans besser zu unterstützen, aber vielleicht wird mehr Unterstützung für unveränderliche POJOs mit der Zeit immer beliebter?