Sobes.tech
Middle

Dekorator nima?

sobes.tech AI

AIdan javob

Dekorator — bu dizayn shabloni bo'lib, u ob'ektga dinamik tarzda yangi xulq-atvor qo'shish imkonini beradi va uning tuzilishini o'zgartirmaydi.

Asosiy xususiyatlar:

  • Moslashuvchanlik: ob'ektlarning funksionalligini bajarilayotgan paytda qo'shish yoki olib tashlash imkonini beradi.
  • Mustaqillik: Yangi funksionallik asosiy sinfdan mustaqil ravishda qo'shilishi mumkin.
  • Kompozitsiyadan foydalanish: Dekorator dekoratsiya qilingan ob'ektga havola saqlaydi va so'rovlarni unga yo'naltiradi, bajarilishidan oldin yoki keyin logika qo'shadi.

Qo'llanilishi:

  • Log yozish
  • Kirish huquqini tekshirish (avtorizatsiya/avtentiqatsiya)
  • Metama'lumotlar qo'shish
  • Usullarning xulq-atvorini o'zgartirish

Python misoli:

# Dekoratsiya uchun oddiy funksiya
def my_function():
    return "Hello"

# Dekorator
def simple_decorator(func):
    def wrapper():
        print("Funktsiya chaqirilishidan oldin")
        result = func()
        print("Funktsiya chaqirilishidan keyin")
        return result
    return wrapper

# Dekoratorni qo'llash
@simple_decorator
def decorated_function():
    return "World"

# Dekoratsiya qilingan funksiyani chaqirish
# decorated_function() quyidagicha chiqadi:
# Funktsiya chaqirilishidan oldin
# Funktsiya chaqirilishidan keyin
# va "World" ni qaytaradi