Junior — Middle
Jaká jsou omezení při používání soukromých konstruktorů ve třídách?
sobes.tech AI
Odpověď od AI
Soukromé konstruktory ve třídách mají následující omezení:
- Nemohou být volány zvenčí třídy, tj. nelze vytvořit objekt této třídy pomocí operátoru
newmimo samotnou třídu. - Obvykle se používají k implementaci vzorů, například Singleton, nebo k vytváření tříd s množinou statických metod (užitečné třídy).
- Kvůli soukromému konstruktoru nelze takovou třídu dědit, protože podtřídy nebudou moci volat konstruktor základní třídy.
Příklad použití soukromého konstruktoru pro Singleton:
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {
// soukromý konstruktor
}
public static Singleton getInstance() {
return instance;
}
}
Tímto způsobem omezuje soukromý konstruktor vytváření objektů pouze uvnitř třídy a zakazuje vytváření instancí zvenčí.