Middle+
Struktural dizayn shablonlari nima?
sobes.tech AI
AIdan javob
Tuzilma dizayn naqshlari sinflar va obyektlar qanday qilib kattaroq tuzilmalarni qurish uchun birlashtirilishi mumkinligini tasvirlaydi. Ular obyektlar o'rtasidagi o'zaro ta'sirni tashkil qilishga yordam beradi, tizimni yanada moslashuvchan va qo'llab-quvvatlashga qulay qiladi.
Ba'zi keng tarqalgan tuzilma naqshlari:
- Adapter (Adapter): Mos kelmaydigan interfeysga ega sinflar birga ishlash imkonini beradi.
- Bridge (Ko'prik): Abstraktsiyani uning amalga oshirilishidan ajratadi, bu esa ularning mustaqil ravishda o'zgarishiga imkon beradi.
- Composite (Kombinatsiya): Bir guruh obyektlarni bitta obyekt sifatida ko'rib chiqishga imkon beradi.
- Decorator (Dekorator): Ob'ektlarga ularning kodini o'zgartirmasdan dinamik ravishda yangi xususiyatlar qo'shadi.
- Facade (Fasad): Subsystemdagi interfeyslar to'plamiga yagona interfeys taqdim etadi.
- Flyweight (Flyweight): Ko'p kichik obyektlar orasida umumiy holatni bo'lishib, xotira tejash.
- Proxy (Proksi): Boshqa obyekt uchun o'rinbosar bo'lib, unga kirishni nazorat qiladi.
Decorator naqshidan foydalanish misoli:
# Asosiy komponent
class Coffee:
def cost(self):
return 5
def description(self):
return "Oddiy qahva"
# Asosiy dekorator
class CoffeeDecorator:
def __init__(self, coffee):
self._coffee = coffee
def cost(self):
return self._coffee.cost()
def description(self):
return self._coffee.description()
# Aniq dekorator
class MilkDecorator(CoffeeDecorator):
def cost(self):
return self._coffee.cost() + 2
def description(self):
return self._coffee.description() + ", sut bilan"
# Foydalanish
my_coffee = Coffee()
print(my_coffee.description(), "-", my_coffee.cost()) # Oddiy qahva - 5
coffee_with_milk = MilkDecorator(my_coffee)
print(coffee_with_milk.description(), "-", coffee_with_milk.cost()) # Oddiy qahva, sut bilan - 7
Ushbu naqshlar obyektlarning tarkibiyligini ishlatish orqali moslashuvchanlikni ta'minlaydi, bu esa mavjud kodni o'zgartirmasdan tizimni o'zgartirish imkonini beradi.