Sobes.tech
Junior — Middle

Java tilida Singleton naqshini qanday amalga oshirish mumkin?

sobes.tech AI

AIdan javob

Singleton naqshoni, sinfning faqat bitta nusxasi bo'lishini ta'minlaydi va unga global kirish nuqtasini taqdim etadi.

Java'da bu bir necha usul bilan amalga oshirilishi mumkin. Oddiy va iplar uchun xavfsiz variantlardan biri synchronized kalit so'zi bilan kechiktirilgan boshlang'ichni yoki statik ichki sinfni ishlatishdir.

Statik ichki sinf bilan misol:

public class Singleton {
    private Singleton() {
        // xususiy konstruktor
    }

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

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

Bu yondashuv, getInstance() chaqirilgan birinchi marta nusxani yaratadi va synchronized ishlatmasdan iplar uchun xavfsizdir.