Middle
Kas yra dekoratorius?
sobes.tech AI
Atsakymas iš AI
Dekoratorius yra projektavimo šablonas, leidžiantis dinamiškai pridėti naują elgesį objektui be jo struktūros keitimo.
Pagrindinės savybės:
- Lankstumas: leidžia pridėti arba pašalinti funkcionalumą objektams vykdymo metu.
- Nepriklausomybė: naujas funkcionalumas gali būti pridėtas nepriklausomai nuo pagrindinio klases.
- Kompozicijos naudojimas: Dekoratorius turi nuorodą į dekoruojamą objektą ir nukreipia užklausas į jį, pridėdamas logiką prieš arba po vykdymo.
Taikymas:
- Žurnalo įrašymas
- Prieigos kontrolė (autentifikacija/autorizacija)
- Metaduomenų pridėjimas
- Metodų elgesio keitimas
Pavyzdys Python kalba:
# Paprasta funkcija dekoravimui
def my_function():
return "Hello"
# Dekoratorius
def simple_decorator(func):
def wrapper():
print("Prieš funkcijos kvietimą")
result = func()
print("Po funkcijos kvietimo")
return result
return wrapper
# Dekoratoriaus taikymas
@simple_decorator
def decorated_function():
return "World"
# Dekoruotos funkcijos kvietimas
# decorated_function() išves:
# Prieš funkcijos kvietimą
# Po funkcijos kvietimo
# ir grąžins "World"