Sobes.tech
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 new operatoriumi 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.