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