Sobes.tech
Junior — Middle

Εξηγήστε τις διαφορές μεταξύ των προτύπων Singleton και Prototype στο πλαίσιο της εμβέλειας και της χρήσης αντικειμένων.

sobes.tech AI

Απάντηση από AI

Το μοτίβο Singleton διασφαλίζει ότι στην εφαρμογή υπάρχει μόνο ένα στιγμιότυπο μιας κλάσης, το οποίο είναι διαθέσιμο παγκοσμίως. Το πεδίο ορατότητας του αντικειμένου είναι παγκόσμιο και όλοι οι πελάτες εργάζονται με το ίδιο αντικείμενο. Αυτό είναι βολικό για τη διαχείριση κοινών πόρων, όπως η διαμόρφωση ή οι ομάδες συνδέσεων.

Το μοτίβο Prototype προϋποθέτει τη δημιουργία νέων αντικειμένων μέσω κλωνοποίησης ενός υπάρχοντος πρωτοτύπου. Κάθε κλήση δημιουργεί ένα νέο ανεξάρτητο στιγμιότυπο. Το πεδίο ορατότητας είναι τοπικό για κάθε δημιουργημένο αντικείμενο, επιτρέποντας την ύπαρξη πολλαπλών παρόμοιων αλλά ανεξάρτητων αντικειμένων.

Παράδειγμα σε 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 είναι πολλά αντικείμενα που δημιουργούνται βάσει ενός προτύπου.