Sobes.tech
Junior — Middle

Πώς λειτουργεί το μοτίβο Proxy ως μεσάζων για το αρχικό αντικείμενο;

sobes.tech AI

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

Το πρότυπο Proxy στη Java λειτουργεί ως μεσάζων μεταξύ του πελάτη και του αρχικού αντικειμένου. Ο Proxy ελέγχει την πρόσβαση σε αυτό το αντικείμενο, μπορεί να προσθέσει επιπλέον λογική πριν ή μετά την κλήση των μεθόδων του αρχικού, όπως caching, έλεγχο δικαιωμάτων, αργή αρχικοποίηση ή καταγραφή.

Έτσι, ο πελάτης αλληλεπιδρά με τον Proxy όπως θα έκανε με το αρχικό αντικείμενο, αλλά ο Proxy διαχειρίζεται τις κλήσεις και μπορεί να αλλάξει τη συμπεριφορά χωρίς να αλλάξει το αρχικό αντικείμενο.

Παράδειγμα:

interface Image {
    void display();
}

class RealImage implements Image {
    private String filename;

    public RealImage(String filename) {
        this.filename = filename;
        loadFromDisk();
    }

    private void loadFromDisk() {
        System.out.println("Φόρτωση " + filename);
    }

    public void display() {
        System.out.println("Εμφάνιση " + filename);
    }
}

class ProxyImage implements Image {
    private RealImage realImage;
    private String filename;

    public ProxyImage(String filename) {
        this.filename = filename;
    }

    public void display() {
        if (realImage == null) {
            realImage = new RealImage(filename); // τεμπέλης δημιουργία
        }
        realImage.display();
    }
}

// Χρήση:
Image image = new ProxyImage("photo.jpg");
image.display(); // φόρτωση και εμφάνιση
image.display(); // μόνο εμφάνιση, χωρίς επαναφόρτωση

Σε αυτό το παράδειγμα, ο Proxy ελέγχει τη δημιουργία και την πρόσβαση στο πραγματικό αντικείμενο, βελτιστοποιώντας τη χρήση πόρων.