Middle
Kas ir dekorators?
sobes.tech AI
Atbilde no AI
Dekorators ir dizaina paraugs, kas ļauj dinamiski pievienot jaunu uzvedību objektam, nemainot tā struktūru.
Galvenās īpašības:
- Elastība: ļauj pievienot vai noņemt funkcionalitāti objektiem izpildes laikā.
- Neatkarība: jauna funkcionalitāte var tikt pievienota neatkarīgi no galvenās klases.
- Kompozīcijas izmantošana: Dekorators satur atsauci uz dekorēto objektu un pāradresē pieprasījumus tam, pievienojot loģiku pirms vai pēc izpildes.
Pielietojumi:
- Žurnāla ierakstīšana
- Piekļuves kontrole (autentifikācija/autorizācija)
- Metadatu pievienošana
- Metožu uzvedības maiņa
Piemērs Python:
# Vienkārša funkcija dekorēšanai
def my_function():
return "Hello"
# Dekorators
def simple_decorator(func):
def wrapper():
print("Pirms funkcijas izsaukšanas")
result = func()
print("Pēc funkcijas izsaukšanas")
return result
return wrapper
# Dekoratora lietošana
@simple_decorator
def decorated_function():
return "World"
# Dekorētās funkcijas izsaukšana
# decorated_function() izvadīs:
# Pirms funkcijas izsaukšanas
# Pēc funkcijas izsaukšanas
# un atgriezīs "World"