Bir 'Bar / Kulüp' (içtiğiniz / sosyalleştiğiniz bir yer) olan iki nesnem var.
Bir senaryoda bar adı, adres, mesafe, slogon'a ihtiyacım var
Başka bir senaryoda bar adı, adresi, web sitesi url'si, logoya ihtiyacım var
Aynı şeyi temsil eden ama farklı alanlara sahip iki nesnem var.
Değişmez nesneleri kullanmayı seviyorum, bu yüzden tüm alanlar yapıcıdan ayarlanır .
Bir seçenek iki kurucuya sahip olmak ve diğer alanları boş bırakmaktır:
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
}
Alıcıları kullandığınızda null kontrol etmek zorunda kalacağınız için bunu sevmiyorum
Benim gerçek örneğimde, ilk senaryoda 3 alan ve ikinci senaryoda yaklaşık 10 tane var, bu yüzden iki kurucuya sahip gerçek bir acı olurdu, boş bırakacağım alanların miktarı ve daha sonra nesne kullanıldığında Hangisini Bar
kullandığınızı ve böylece hangi alanların boş ve hangilerinin kullanılamayacağını bilmiyorum.
Başka hangi seçeneklerim var?
İki sınıf denir BarPreview
ve Bar
?
Bir çeşit miras / arayüz?
Harika bir şey mi?
You should only ask practical, answerable questions based on actual problems that you face.
ve burada olan tam olarak budur
Bar
bir tanımlayıcı olarak meşru bir kullanım buldunuz !