Sobes.tech
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"