Sobes.tech
Junior — Middle

რა არის Lazy Singleton-ის ნიმუშის მიზანი და როგორ ხორციელდება?

sobes.tech AI

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

Lazy Singleton მოდელი განკუთვნილია ერთგვარი კლასი, რომლის მხოლოდ ერთი ეგზემპლარი უნდა იქმნას, და ეს ეგზემპლარი ინიციალიზდება მხოლოდ პირველ მიმართვაზე, არა კლასის ჩატვირთვის დროს. ეს ეხმარება რესურსების დაზოგვაში, თუ ობიექტი შეიძლება საჭირო არ იყოს.

Java-ში Lazy Singleton-ის მაგალითი გამოყენებით დაგვიანებული ინიციალიზაციით და სინქრონიზაციით:

public class LazySingleton {
    private static LazySingleton instance;

    private LazySingleton() {
        // პირადი კონსტრუქტორი
    }

    public static synchronized LazySingleton getInstance() {
        if (instance == null) {
            instance = new LazySingleton();
        }
        return instance;
    }
}

აქ ობიექტი შექმნილია მხოლოდ getInstance()-ის პირველ გამოძახებაზე. სინქრონიზაცია უზრუნველყოფს მრავალთრევიან გარემოში უსაფრთხოებას, მაგრამ შეიძლება გავლენა მოახდინოს შესრულებაზე. გაუმჯობესებისთვის შეიძლება გამოყენებულ იქნას double-checked locking ან სტატიკური შიდა კლასი.