Sobes.tech
Middle

Mi az a dekorátor?

sobes.tech MI

Válasz az MI-től

A dekorátor egy tervezési minta, amely lehetővé teszi, hogy dinamikusan új viselkedést adjunk egy objektumnak anélkül, hogy megváltoztatnánk annak szerkezetét.

Fő jellemzők:

  • Rugalmasság: Lehetővé teszi az objektumok funkcionalitásának hozzáadását vagy eltávolítását futás közben.
  • Függetlenség: Az új funkcionalitás függetlenül hozzáadható a fő osztálytól.
  • Kompozíció használata: A dekorátor tartalmaz egy hivatkozást a dekorált objektumra, és átirányítja hozzá a kéréseket, logikát adva hozzá az végrehajtás előtt vagy után.

Alkalmazások:

  • Naplózás
  • Hozzáférés ellenőrzése (hitelesítés/engedélyezés)
  • Metaadatok hozzáadása
  • A metódusok viselkedésének módosítása

Python példával:

# Egyszerű függvény dekoráláshoz
def my_function():
    return "Hello"

# Dekorátor
def simple_decorator(func):
    def wrapper():
        print("A függvény hívása előtt")
        result = func()
        print("A függvény hívása után")
        return result
    return wrapper

# A dekorátor alkalmazása
@simple_decorator
def decorated_function():
    return "World"

# Dekorált függvény hívása
# decorated_function() ki fogja írni:
# A függvény hívása előtt
# A függvény hívása után
# és "World" értéket ad vissza