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