Junior — Middle
Millised piirangud on privaatsete konstruktorite kasutamisel klassides?
sobes.tech AI
Vastus AI-lt
Privaatsed konstruktorid klassides on järgmised piirangud:
- Neid ei saa väljast klassist kutsuda, see tähendab, et objekti selle klassi kohta ei saa luua
newoperaatoriga väljaspool klassi. - Tavaliselt kasutatakse mustrite, näiteks Singleton, rakendamiseks või klasside loomisel, millel on statiliste meetodite kogum (abikäsklassid).
- Privaatse konstruktoriga klassi ei saa pärida, kuna alamklassid ei saa kutsuda baasklasside konstruktorit.
Näide privaatse konstruktoriga Singletoni kasutamisest:
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {
// privaatne konstruktor
}
public static Singleton getInstance() {
return instance;
}
}
Seega piirab privaatne konstruktor objektide loomist ainult klassi sees ja keelab nende loomise väljaspool klassi.