Junior — Middle
Kokios yra apribojimai naudojant privačius konstruktorius klasėse?
sobes.tech AI
Atsakymas iš AI
Privačios konstruktoriai klasėse turi šiuos apribojimus:
- Juos galima iškviesti tik pačioje klasėje, tai yra, išorėje su
newoperatoriumi sukurti šios klasės objektą neįmanoma. - Jie dažnai naudojami įgyvendinant šablonus, pvz., Singleton, arba kuriant klases su statinių metodų rinkiniu (naudojimo klasės).
- Dėl privačiojo konstruktoriaus tokios klasės negalima paveldėti, nes pogrupiai negalės iškviesti bazinės klasės konstruktoriaus.
Pavyzdys, kaip naudoti privačią konstruktorių Singleton pavyzdyje:
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {
// privačios konstruktorius
}
public static Singleton getInstance() {
return instance;
}
}
Taip, privačios konstruktorius riboja objektų kūrimą tik klasės viduje ir draudžia jų kūrimą iš išorės.