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"