Junior — Middle
Jakie ograniczenia istnieją przy używaniu prywatnych konstruktorów w klasach?
sobes.tech AI
Odpowiedź od AI
Prywatne konstruktory w klasach mają następujące ograniczenia:
- Nie można ich wywołać spoza klasy, czyli nie można utworzyć obiektu tej klasy za pomocą operatora
newpoza samą klasą. - Zazwyczaj są używane do implementacji wzorców, na przykład Singleton, lub do tworzenia klas z zestawem metod statycznych (klas narzędziowych).
- Ze względu na prywatny konstruktor, nie można dziedziczyć takiej klasy, ponieważ podklasy nie będą mogły wywołać konstruktora klasy bazowej.
Przykład użycia prywatnego konstruktora dla Singleton:
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {
// prywatny konstruktor
}
public static Singleton getInstance() {
return instance;
}
}
W ten sposób prywatny konstruktor ogranicza tworzenie obiektów tylko w obrębie klasy i zabrania tworzenia instancji spoza niej.