'Bar / Club'(음료 / 사회적 장소)을 나타내는 두 가지 개체가 있습니다.
한 시나리오에서 막대 이름, 주소, 거리, 슬로건이 필요합니다.
다른 시나리오에서는 바 이름, 주소, 웹 사이트 URL, 로고가 필요합니다
그래서 같은 것을 나타내지 만 다른 필드를 가진 두 개의 객체가 있습니다.
불변의 객체를 사용하고 싶습니다. 그래서 모든 필드는 constructor에서 설정됩니다 .
하나의 옵션은 두 개의 생성자를 사용하고 다른 필드는 null입니다.
class Bar {
private final String name;
private final Distance distance;
private final Url url;
public Bar(String name, Distance distance){
this.name = name;
this.distance = distance;
this.url = null;
}
public Bar(String name, Url url){
this.name = name;
this.distance = null;
this.url = url;
}
// getters
}
getter를 사용할 때 null 검사를해야하므로 이것을 좋아하지 않습니다.
실제 예제에서 첫 번째 시나리오에는 3 개의 필드가 있고 두 번째 시나리오에는 약 10 개의 필드가 있으므로 두 개의 생성자 가 있으면 고통 이 될 것 입니다. 필드를 null로 선언 해야하는 필드의 수는 객체가 사용 중일 때 ' Bar
어떤 필드를 사용하고 어떤 필드가 null인지, 그렇지 않은 필드를 알지 못합니다.
다른 옵션이 있습니까?
두 클래스 BarPreview
와 Bar
?
어떤 유형의 상속 / 인터페이스?
다른 멋진 것이 있습니까?
You should only ask practical, answerable questions based on actual problems that you face.
그것은 정확히 무슨 일이 일어나고 있는지
Bar
식별자로서의 합법적 인 사용을 생각해 냈습니다 !