Middle+
რა არის სტრუქტურული დიზაინის ნიმუშები?
sobes.tech AI
პასუხი AI-სგან
კონსტრუქციული დიზაინის ნიმუშები აღწერენ, როგორ შეიძლება კლასები და ობიექტები შეერთდნენ, რათა შექმნან უფრო დიდი სტრუქტურები. ისინი ეხმარებიან ურთიერთქმედების ორგანიზებაში ობიექტებს შორის, რაც სისტემას უფრო მოქნილს და შენარჩუნებადს ხდის:
ზოგიერთი გავრცელებული სტრუქტურული ნიმუშები:
- ადაპტერი (Adapter): საშუალებას აძლევს შეუთავსებელ ინტერფეისებს ერთად მუშაობა.
- ხიდი (Bridge): გამოყოფს აბსტრაქციას მისი რეალიზაციიდან, რაც საშუალებას აძლევს მათ დამოუკიდებლად იცვალონ.
- კომპოზიტი (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
ეს ნიმუშები უზრუნველყოფენ მოქნილობას ობიექტების კომპოზიციით, რაც საშუალებას აძლევს სისტემაში ცვლილებების შეტანას მემკვიდრეობის შეცვლის გარეშე.