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"