Menu
Coddy logo textTech

Tasarım kalıplarına giriş

Coddy'nin Python Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 44 / 64.

Tasarım desenleri, yazılım tasarımındaki yaygın sorunlara yönelik yeniden kullanılabilir çözümlerdir. Kodunuzdaki yinelenen tasarım sorunlarını çözmek için özelleştirebileceğiniz taslaklar gibidirler.

Tasarım desenlerini, deneyimli geliştiricilerin benzer sorunları çözmek için kullandığı kanıtlanmış şablonlar olarak düşünün. "Singleton desenini kullandım" dediğinizde, diğer geliştiriciler kodunuzun yapısını anında anlarlar.

İşte desenlerin neden önemli olduğuna dair basit bir örnek:

# Desen olmadan - karmaşık yaklaşım
class DatabaseConnection:
    def __init__(self):
        self.connection = "Connected to database"

# Sorun: Birden fazla bağlantı oluşturuldu
db1 = DatabaseConnection()
db2 = DatabaseConnection()  # İsraf - başka bir bağlantı oluşturur

Bir tasarım deseni ile daha iyi bir çözüm elde edersiniz:

# Singleton deseni ile - kontrollü yaklaşım
class DatabaseConnection:
    _instance = None
    
    def __new__(cls):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
            cls._instance.connection = "Connected to database"
        return cls._instance

# Artık sadece tek bir bağlantı mevcut
db1 = DatabaseConnection()
db2 = DatabaseConnection()
print(db1 is db2)  # True - aynı örnek

Neden tasarım desenleri kullanılır:

  • Tekrar Kullanılabilirlik: Benzer problemlere uygulayabileceğiniz çözümler
  • İletişim: Geliştiriciler arasında ortak kelime dağarcığı
  • En İyi Uygulamalar: Zamanla test edilmiş çözümler
  • Sürdürülebilirlik: İyi yapılandırılmış, düzenli kod

Bu seride öğrenecekleriniz:

Creational Patterns (nesnelerin nasıl oluşturulduğu):

  • Singleton Pattern - Sadece tek bir örnek
  • Factory Pattern - Tam sınıfı belirtmeden nesne oluşturma

Yapısal Desenler (nesnelerin nasıl birleştirildiği):

  • Adapter Deseni - Uyumsuz arayüzlerin birlikte çalışmasını sağlayın
  • Decorator Deseni - Yapıyı değiştirmeden işlevsellik ekleyin

Davranışsal Kalıplar (nesnelerin nasıl etkileşime girdiği):

  • Observer Kalıbı - Değişikliklerden birden fazla nesneyi haberdar edin
  • Strategy Kalıbı - Algoritmaları dinamik olarak değiştirin
  • Command Kalıbı - İstekleri nesne olarak kapsülleyin

Her desen dersi şunları kapsayacaktır:

  • Hangi sorunu çözdüğü
  • Python'da nasıl uygulanacağı
  • Ne zaman kullanılacağı
  • Gerçek dünya örnekleri

Önemli Nokta: Tasarım desenleri, yaygın programlama sorunlarına yönelik kanıtlanmış çözümlerdir. Kodunuzu daha sürdürülebilir, esnek ve anlaşılması daha kolay hale getiren ortak bir kelime dağarcığı ve en iyi uygulamalar sağlarlar. Her Python geliştiricisinin bilmesi gereken 7 temel deseni öğreneceksiniz.

Kopya kağıdı

Tasarım desenleri, yazılım tasarımındaki yaygın sorunlara yönelik yeniden kullanılabilir çözümlerdir. Yinelenen tasarım problemlerini çözmek için kanıtlanmış şablonlar sağlarlar.

Tasarım desenlerinin faydaları:

  • Yeniden Kullanılabilirlik: Benzer sorunlara uygulayabileceğiniz çözümler
  • İletişim: Geliştiriciler arasında ortak kelime dağarcığı
  • En İyi Uygulamalar: Zamanla test edilmiş çözümler
  • Bakım Kolaylığı: İyi yapılandırılmış, düzenli kod

Örnek - Singleton Deseni:

# Desen olmadan - birden fazla örnek oluşturur
class DatabaseConnection:
    def __init__(self):
        self.connection = "Connected to database"

# Singleton deseni ile - tek bir örnek olmasını sağlar
class DatabaseConnection:
    _instance = None
    
    def __new__(cls):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
            cls._instance.connection = "Connected to database"
        return cls._instance

Desen Kategorileri:

  • Oluşturucu Desenler (nesnelerin nasıl oluşturulduğu): Singleton, Factory
  • Yapısal Desenler (nesnelerin nasıl birleştirildiği): Adapter, Decorator
  • Davranışsal Desenler (nesnelerin nasıl etkileşime girdiği): Observer, Strategy, Command

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Object Oriented Programming bölümündeki tüm dersler