Podczas mojego stażu jeden z moich kolegów dał mi wskazówkę. Chcę wiedzieć, czy to dobra praktyka.ciąg prywatny lub publiczny ciąg statyczny?
To, co robiłem, to tworzenie klas, które są używane tylko dla wartości, które zawierają i nie mają żadnych funkcji, które faktycznie coś robią (oprócz posiadania modułów pobierających, ustawiających i konstruktora). Zadeklarowałem zmienne w następujący sposób:
public class ObjectIUse{
Private String name;
public ObjectIUse(String name){
this.name = name;
}
public String getName(){
return name;
}
}
Nie używam setera, ponieważ zawsze powinien pozostać taki sam. Mój kolega powiedział, że mogę również zrobić to w ten sposób:
public class ObjectIUse{
public final String name;
public ObjectIUse(String name){
this.name = name;
}
}
Bo teraz nie musimy mieć żadnych pobierające i ustawiające bo to jest publiczna, ale może też nie być zmienione, ponieważ jest ostateczna.
Który byłby lepszy? A może lepiej byłoby uczynić to prywatnym, ale także ostatecznym? Mam na myśli, że wszystkie opcje działają, oczywiście. Chcę tylko wiedzieć, co jest lepsze i dlaczego.
Ustaw jako prywatny. Spraw, aby był ostateczny. –
Co powiedział Sayem. Publiczne zmienne członkowskie są "uważane za szkodliwe". Kiedy twój obiekt się nie zmienia (mówimy, że jest "niezmienny"), zadeklaruj zmienną składową "final". Zmusza to do ustawienia go w konstruktorze i uniemożliwia jego zmianę - nawet jeśli ktoś odzwierciedla instancję klasy. –
To też było moim zdaniem lepszym rozwiązaniem. Jakie jest twoje rozumowanie? – WereWolfBoy