Sobes.tech
Middle

Τι είναι ο διακοσμητής;

sobes.tech AI

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

Ο διακοσμητής είναι ένα μοτίβο σχεδίασης που επιτρέπει την δυναμική προσθήκη νέας συμπεριφοράς σε ένα αντικείμενο χωρίς να αλλάζει τη δομή του.

Βασικά χαρακτηριστικά:

  • Ευελιξία: Επιτρέπει την προσθήκη ή αφαίρεση λειτουργικότητας από αντικείμενα κατά την εκτέλεση.
  • Ανεξαρτησία: Η νέα λειτουργικότητα μπορεί να προστεθεί ανεξάρτητα από την κύρια κλάση.
  • Χρήση σύνθεσης: Ο διακοσμητής περιέχει μια αναφορά στο διακοσμημένο αντικείμενο και ανακατευθύνει τα αιτήματα σε αυτό, προσθέτοντας λογική πριν ή μετά την εκτέλεση.

Εφαρμογές:

  • Καταγραφή
  • Έλεγχος πρόσβασης (ταυτοποίηση/εξουσιοδότηση)
  • Προσθήκη μεταδεδομένων
  • Αλλαγή συμπεριφοράς μεθόδων

Παράδειγμα σε Python:

# Απλή λειτουργία για διακόσμηση
def my_function():
    return "Hello"

# Διακοσμητής
def simple_decorator(func):
    def wrapper():
        print("Πριν από την κλήση της λειτουργίας")
        result = func()
        print("Μετά την κλήση της λειτουργίας")
        return result
    return wrapper

# Εφαρμογή του διακοσμητή
@simple_decorator
def decorated_function():
    return "World"

# Κλήση της διακοσμημένης λειτουργίας
# decorated_function() θα εμφανίσει:
# Πριν από την κλήση της λειτουργίας
# Μετά την κλήση της λειτουργίας
# και θα επιστρέψει "World"