Sobes.tech
Junior — Middle

როგორ განვახორციელოთ Singleton ნიმუშის მელანქოლური ინიციალიზაცია?

sobes.tech AI

პასუხი AI-სგან

Java-да Lazy Initialization Singleton, sinfнең үрнәген генә беренче мөрәҗәгатьтә булдыра, бу ресурсларны экономияли. Иң киң таралган ысулларның берсе — эчке статик класс куллану:

public class Singleton {
    private Singleton() {
        // шәхси конструктор
    }

    private static class Holder {
        private static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return Holder.INSTANCE;
    }
}

Монда, Holder классы гына getInstance() беренче чакырылышында йөкләнә һәм башлана, бу күп агымлы мохиттә куркынычсызлык һәм ленив башлануны тәэмин итә, синхронлаштырусыз.