Sobes.tech
Middle+

Struktural dizayn nümunələri nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Struktur dizayn naxşləri, siniflərin və obyektlərin daha böyük strukturlar qurmaq üçün necə birləşdirilə biləcəyini təsvir edir. Onlar obyektlər arasında qarşılıqlı əlaqəni təşkil etməyə kömək edir, sistemi daha çevik və dəstəklənən edir.

Bəzi yaygın struktur naxşləri:

  • Adapter (Adapter): Uyğunsuz interfeyslərə malik siniflərin birlikdə işləməsinə imkan verir.
  • Bridge (Körpü): Abstraksiyanı onun həyata keçirilməsindən ayırır, hər ikisinin müstəqil dəyişməsinə imkan verir.
  • Composite (Birləşmə): Bir qrup obyektləri tək obyekt kimi qəbul etməyə imkan verir.
  • Decorator (Dekorator): Obyektlərə onların kodunu dəyişmədən dinamik olaraq yeni davranışlar əlavə edir.
  • Facade (Fasad): Bir alt sistemdəki interfeyslər toplusuna vahid interfeys təqdim edir.
  • Flyweight (Flyweight): Yaddaşı qənaət etmək üçün çox kiçik obyektlər arasında ümumi vəziyyəti paylaşır.
  • Proxy (Proxy): Digər obyekt üçün yerinə keçən və ona girişə nəzarət edən obyekt.

Decorator naxşindən istifadə nümunəsi:

# Əsas komponent
class Coffee:
    def cost(self):
        return 5

    def description(self):
        return "Adi qəhvə"

# Dekorator əsas
class CoffeeDecorator:
    def __init__(self, coffee):
        self._coffee = coffee

    def cost(self):
        return self._coffee.cost()

    def description(self):
        return self._coffee.description()

# Konkret dekorator
class MilkDecorator(CoffeeDecorator):
    def cost(self):
        return self._coffee.cost() + 2

    def description(self):
        return self._coffee.description() + ", süd ilə"

# İstifadə
my_coffee = Coffee()
print(my_coffee.description(), "-", my_coffee.cost()) # Adi qəhvə - 5

coffee_with_milk = MilkDecorator(my_coffee)
print(coffee_with_milk.description(), "-", coffee_with_milk.cost()) # Adi qəhvə, süd ilə - 7

Bu naxşlər obyektlərin tərkibindən istifadə etməklə elastikliyi təmin edir, bu da mövcud kodu dəyişdirmədən sistemi dəyişdirməyə imkan verir.