Sobes.tech
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 new mimo 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čí.