Sobes.tech
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"