Sobes.tech
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

ეს ნიმუშები უზრუნველყოფენ მოქნილობას ობიექტების კომპოზიციით, რაც საშუალებას აძლევს სისტემაში ცვლილებების შეტანას მემკვიდრეობის შეცვლის გარეშე.