Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε τι είναι το μοτίβο διακοσμητή και ποιο είναι το βασικό του νόημα;

sobes.tech AI

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

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

Η κύρια ιδέα είναι να δημιουργηθεί ένα περίβλημα γύρω από το αντικείμενο που υλοποιεί την ίδια διεπαφή και μπορεί να εκτελέσει πρόσθετη λογική πριν ή μετά την κλήση των μεθόδων του αρχικού αντικειμένου.

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

Παράδειγμα σε ψευδοκώδικα:

interface Coffee {
    double cost();
}

class SimpleCoffee implements Coffee {
    public double cost() { return 5; }
}

class MilkDecorator implements Coffee {
    private Coffee coffee;
    public MilkDecorator(Coffee coffee) { this.coffee = coffee; }
    public double cost() { return coffee.cost() + 2; }
}

// Χρήση:
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 7

Έτσι, ο διακοσμητής επιτρέπει την ευέλικτη προσθήκη λειτουργικότητας σε αντικείμενα κατά την εκτέλεση.