Junior — Middle
Jaké principy je třeba používat při vytváření třídy v Java, aby byla neměnná?
sobes.tech AI
Odpověď od AI
Chcete-li v Java vytvořit neměnnou třídu (immutable), je třeba dodržovat několik zásad:
- Deklarujte třídu jako
final— aby nem bylo možné vytvořit podtřídu, která by změnila chování. - Uveďte všechna pole jako
privateafinal— aby je nebylo možné po inicializaci změnit. - Neposkytujte setterové metody (metody pro změnu polí).
- Inicializujte všechna pole prostřednictvím konstruktoru.
- Pokud jsou pole odkazy na měnitelné objekty (například pole, kolekce), vytvářejte jejich kopie při přiřazení a při vrácení z getterů, aby vnější změny neovlivnily vnitřní stav.
Příklad:
public final class ImmutablePerson {
private final String name;
private final int age;
public ImmutablePerson(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Taková třída po vytvoření objektu neumožňuje změnu jeho stavu, což je užitečné pro bezpečnost vláken a předvídatelnost chování.