Middle+
Ի՞նչ են կառուցվածքային նախագծման օրինակները։
sobes.tech AI
Պատասխան AI-ից
Կառուցվածքային նախագծային պատկերները նկարագրում են, թե ինչպես կարող են դասերը և օբյեկտները համատեղվել՝ ավելի մեծ կառուցվածքներ ստեղծելու համար: Դրանք օգնում են կազմակերպել փոխազդեցությունը օբյեկտների միջև՝ դարձնելով համակարգը ավելի ճկուն և պահպանվող:
Некоторые распространенные структурные паттерны:
- Ադապտեր (Adapter): Позволяет работать вместе классам с несовместимыми интерфейсами.
- Կապ (Bridge): Անջատում է աբստրակցիան իր իրականացմանից՝ թույլ տալով նրանց փոփոխվել անկախ one from the other.
- Կոմպոզիտ (Composite): Позволяет рассматривать группу объектов так же, как и один объект.
- Դեկորատոր (Decorator): Դինամիկորեն ավելացնում է նոր վարքագիծ օբյեկտներին՝ առանց նրանց կոդը փոխելու:
- Ֆասադ (Facade): Առաջադրում է միացյալ ինտերֆեյս՝ ենթաբազմության ինտերֆեյսների հավաքածուի համար:
- Ֆլայվեյթ (Flyweight): Զարգացնում է հիշողությունը՝ բաժանելով ընդհանուր վիճակը բազմաթիվ փոքր օբյեկտների միջև:
- Պրոքսի (Proxy): Առաջադրում է փոխարինող՝ վերահսկելու համար մյուս օբյեկտին մուտքը:
Օրինակ՝ Դեկորատոր պատկերի կիրառումը:
# Բազային կոմպոնենտ
class Coffee:
def cost(self):
return 5
def description(self):
return "Սովորական սուրճ"
# Բազային դեկորատոր
class CoffeDecorator:
def __init__(self, coffee):
self._coffee = coffee
def cost(self):
return self._coffee.cost()
def description(self):
return self._coffee.description()
# կոնկրետ դեկորատոր
class MilkDecorator(CoffeDecorator):
def cost(self):
return self._coffee.cost() + 2
def description(self):
return self._coffee.description() + ", կաթով"
# Օգտագործում
my_coffee = Coffee()
print(my_coffee.description(), "-", my_coffee.cost()) # Սովորական սուրճ - 5
coffee_with_milk = MilkDecorator(my_coffee)
print(coffee_with_milk.description(), "-", coffee_with_milk.cost()) # Սովորական սուրճ, կաթով - 7
Այս ձևանմուշները ապահովում են ճկունություն՝ օգտագործելով օբյեկտների կոմպոզիցիա՝ ժառանգության փոխարեն, ինչը թույլ է տալիս կատարել փոփոխություններ համակարգում՝ առանց առկա կոդը փոխելու։