Middle
Šta je dekorator?
sobes.tech АИ
Одговор од АИ
Dekorator je obrazac dizajna koji omogućava dinamičko dodavanje novog ponašanja objektu bez promene njegove strukture.
Glavne karakteristike:
- Fleksibilnost: Omogućava dodavanje ili uklanjanje funkcionalnosti objekata tokom izvršavanja.
- Nezavisnost: Nova funkcionalnost može biti dodata nezavisno od glavne klase.
- Korišćenje kompozicije: Dekorator sadrži referencu na dekorisani objekat i preusmerava zahteve na njega, dodajući logiku pre ili posle izvršenja.
Primene:
- Logovanje
- Kontrola pristupa (autentikacija/autorizacija)
- Dodavanje metapodataka
- Izmena ponašanja metoda
Primer u Pythonu:
# Jednostavna funkcija za dekorisanje
def my_function():
return "Hello"
# Dekorator
def simple_decorator(func):
def wrapper():
print("Pre poziva funkcije")
result = func()
print("Posle poziva funkcije")
return result
return wrapper
# Upotreba dekoratora
@simple_decorator
def decorated_function():
return "World"
# Pozivanje dekorisane funkcije
# decorated_function() će ispisati:
# Pre poziva funkcije
# Posle poziva funkcije
# i vratiti "World"