지금까지 몇 가지 Java 응용 프로그램을 구현했지만 지금까지는 데스크톱 응용 프로그램 만 구현했습니다. 나는 JavaBeans라고도 불리는 뮤 테이터 (setters 와 getter )가있는 객체를 사용하는 대신 애플리케이션에서 데이터를 전달하기 위해 불변 객체를 사용하는 것을 선호합니다 .
그러나 Java 세계에서는 JavaBeans를 사용하는 것이 훨씬 더 일반적으로 보이며 대신 JavaBeans를 사용해야하는 이유를 이해할 수 없습니다. 개인적으로 코드는 항상 상태를 변경하는 대신 변경 불가능한 객체 만 처리하면 더 좋아 보입니다.
불변 객체는 Item 15 : Minimize mutability , Effective Java 2ed 에서도 권장됩니다 .
JavaBean으로Person
구현 된 객체가 있으면 다음과 같습니다.
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;
}
}
불변 객체 Person
로 구현 된 것과 동일 합니다.
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;
}
}
또는 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;
}
}
구현 세부 사항을 숨기기 위해 변경 불가능한 개체에 게터를 사용할 수도 있습니다. 그러나 나는 단지 그것을 사용하기 때문에 나는 struct
"getters"를 건너 뛰고 그것을 단순하게 유지 하는 것을 선호한다.
간단히 말해, JavaBeans를 사용하는 것이 더 좋은 이유를 이해하지 못합니다. 또는 변경 불가능한 POJO를 계속 사용할 수 있고 계속 사용해야하는 경우
많은 Java 라이브러리가 JavaBeans를 더 잘 지원하는 것처럼 보이지만 변경 불가능한 POJO에 대한 더 많은 지원이 시간이 지남에 따라 더 인기를 얻게 될까요?