Sobes.tech
Junior — Middle

Java тилинде Singleton паттернин кантип ишке ашыруу керек?

sobes.tech AI

AIден жооп

Singleton үлгісі кепілдік берет, что классқа тек бір ғана мысал бар және оған ғаламдық қол жеткізу нүктесін қамтамасыз етеді.

Java-да бұл бірнеше тәсілмен жүзеге асырылуы мүмкін. Бірі қарапайым және ағындарға қауіпсіз нұсқа — synchronized кілт сөзімен жалқау инициализацияны пайдалану немесе статикалық ішкі сыныпты қолдану.

Статикалық ішкі сыныппен мысал:

public class Singleton {
    private Singleton() {
        // жеке конструктор
    }

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

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

Бұл тәсіл getInstance() шақырылған кезде ғана мысал құрылады және synchronized қолданбай қауіпсіз болып табылады.