Sobes.tech
Junior — Middle

როგორ განვახორციელოთ Singleton ნიმუში Java-ში?

sobes.tech AI

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

სინგლტონი ნიმუში გარანტიას აძლევს, რომ კლასი მხოლოდ ერთი ეგზემპლარით იქნება წარმოდგენილი და გლობალურ წვდომის წერტილს უზრუნველყოფს.

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-ის გამოყენების გარეშე.