Sobes.tech
Middle

Ce este un decorator?

sobes.tech AI

Răspuns de la AI

Decoratoarele sunt un model de proiectare care permite adăugarea dinamică a unui comportament nou unui obiect fără a-i modifica structura.

Caracteristici principale:

  • Flexibilitate: Permite adăugarea sau eliminarea funcționalităților obiectelor în timpul execuției.
  • Independență: Funcționalitatea nouă poate fi adăugată independent de clasa principală.
  • Utilizarea compoziției: Decoratorul conține o referință la obiectul decorat și redirecționează solicitările către acesta, adăugând logică înainte sau după execuție.

Aplicații:

  • Înregistrare
  • Verificarea accesului (autentificare/autorizare)
  • Adăugarea de metadate
  • Modificarea comportamentului metodelor

Exemplu în Python:

# Funcție simplă pentru decorare
def my_function():
    return "Hello"

# Decorator
def simple_decorator(func):
    def wrapper():
        print("Înainte de apelul funcției")
        result = func()
        print("După apelul funcției")
        return result
    return wrapper

# Aplicarea decoratorului
@simple_decorator
def decorated_function():
    return "World"

# Apelarea funcției decorate
# decorated_function() va afișa:
# Înainte de apelul funcției
# După apelul funcției
# și va returna "World"