Middle
Czym jest dekorator?
sobes.tech AI
Odpowiedź od AI
Dekorator to wzorzec projektowy, który umożliwia dynamiczne dodawanie nowego zachowania do obiektu bez zmiany jego struktury.
Główne cechy:
- Elastyczność: pozwala na dodawanie lub usuwanie funkcjonalności obiektów w czasie działania.
- Niezależność: nowa funkcjonalność może być dodana niezależnie od głównej klasy.
- Użycie kompozycji: dekorator zawiera odwołanie do dekorowanego obiektu i przekierowuje do niego żądania, dodając logikę przed lub po wykonaniu.
Zastosowania:
- Logowanie
- Sprawdzanie dostępu (uwierzytelnianie/autoryzacja)
- Dodawanie metadanych
- Modyfikacja zachowania metod
Przykład w Pythonie:
# Prosta funkcja do dekorowania
def my_function():
return "Hello"
# Dekorator
def simple_decorator(func):
def wrapper():
print("Przed wywołaniem funkcji")
result = func()
print("Po wywołaniu funkcji")
return result
return wrapper
# Użycie dekoratora
@simple_decorator
def decorated_function():
return "World"
# Wywołanie zddecorowanej funkcji
# decorated_function() wyświetli:
# Przed wywołaniem funkcji
# Po wywołaniu funkcji
# i zwróci "World"