Sobes.tech
Junior — Middle

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

sobes.tech AI

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

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

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

Java-ის მაგალითი:

// Singleton
public class Singleton {
    private static Singleton instance;
    private Singleton() {}
    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

// Prototype
public class Prototype implements Cloneable {
    private int value;
    public Prototype(int value) { this.value = value; }
    public Prototype clone() throws CloneNotSupportedException {
        return (Prototype) super.clone();
    }
}

ამიტომ, Singleton არის ერთეული ობიექტი მთელი აპლიკაციისთვის, Prototype — მრავალი ობიექტი, რომლებიც შექმნილია ნიმუშის მიხედვით.