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