Sobes.tech
Middle+

Yapısal tasarım kalıpları nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Yapısal tasarım kalıpları, sınıfların ve nesnelerin daha büyük yapılar oluşturmak için nasıl birleştirilebileceğini tanımlar. Nesneler arasındaki etkileşimi düzenlemeye yardımcı olurlar, böylece sistemi daha esnek ve sürdürülebilir hale getirirler.

Bazı yaygın yapısal kalıplar:

  • Adaptör (Adapter): Uyumsuz arayüzlere sahip sınıfların birlikte çalışmasını sağlar.
  • Köprü (Bridge): Soyutlamayı uygulamasından ayırır, böylece ikisi bağımsız olarak değiştirilebilir.
  • Bileşik (Composite): Bir nesne gibi bir grup nesneyi ele almayı sağlar.
  • Dekoratör (Decorator): Nesnelerin davranışını dinamik olarak değiştirir, kodlarını değiştirmeden.
  • Fasad (Facade): Bir alt sistemdeki bir dizi arayüze birleşik bir arayüz sağlar.
  • Flyweight (Flyweight): Çok sayıda küçük nesne arasında ortak durumu paylaşarak bellek tasarrufu sağlar.
  • Proxy (Proxy): Bir nesne yerine geçerek erişimi kontrol eder.

Decorator kalıbının kullanım örneği:

# Temel bileşen
class Coffee:
    def cost(self):
        return 5

    def description(self):
        return "Normal kahve"

# Temel dekoratör
class CoffeeDecorator:
    def __init__(self, coffee):
        self._coffee = coffee

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

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

# Somut dekoratör
class MilkDecorator(CoffeeDecorator):
    def cost(self):
        return self._coffee.cost() + 2

    def description(self):
        return self._coffee.description() + ", süt ile"

# Kullanım
my_coffee = Coffee()
print(my_coffee.description(), "-", my_coffee.cost()) # Normal kahve - 5

coffee_with_milk = MilkDecorator(my_coffee)
print(coffee_with_milk.description(), "-", coffee_with_milk.cost()) # Normal kahve, süt ile - 7

Bu kalıplar, nesne bileşimi kullanılarak esneklik sağlar, böylece mevcut koda dokunmadan sistemi değiştirmeye imkan tanır.