Sobes.tech
Middle

Mis on dekoratiiv?

sobes.tech AI

Vastus AI-lt

Dekoratsioon on disainimuster, mis võimaldab dünaamiliselt lisada objekti uue käitumise ilma selle struktuuri muutmata.

Peamised omadused:

  • Paindlikkus: võimaldab lisada või eemaldada funktsionaalsust objektidelt jooksvalt.
  • Iseseisvus: uus funktsionaalsus võib olla lisatud sõltumatult põhiklassist.
  • Kombinatsiooni kasutamine: Dekorator sisaldab viidet dekoratiivsele objekti ja suunab sellele päringud, lisades enne või pärast täitmist loogika.

Rakendused:

  • Logimine
  • Juurdepääsu kontroll (autentimine/autoriseerimine)
  • Metaandmete lisamine
  • Meetodite käitumise muutmine

Python näide:

# Lihtne funktsioon dekoratsiooniks
def my_function():
    return "Hello"

# Dekorator
def simple_decorator(func):
    def wrapper():
        print("Enne funktsiooni kutsumist")
        result = func()
        print("Pärast funktsiooni kutsumist")
        return result
    return wrapper

# Dekoratori kasutamine
@simple_decorator
def decorated_function():
    return "World"

# Dekoreeritud funktsiooni kutsumine
# decorated_function() väljastab:
# Enne funktsiooni kutsumist
# Pärast funktsiooni kutsumist
# ja tagastab "World"