Tasarım kalıplarına giriş
Coddy'nin Python Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 44 / 64.
Tasarım kalıpları, yazılım tasarımındaki yaygın sorunlara yönelik yeniden kullanılabilir çözümlerdir. Kodunuzdaki tekrarlayan tasarım sorunlarını çözmek için özelleştirebileceğiniz planlar gibidir.
Tasarım desenlerini, deneyimli geliştiricilerin benzer sorunları çözmek için kullandığı kanıtlanmış şablonlar olarak düşünün. "I used the Singleton pattern" dediğinizde, diğer geliştiriciler kodunuzun yapısını hemen anlar.
Kalıpların neden önemli olduğuna dair basit bir örnek:
# Without pattern - messy approach
class DatabaseConnection:
def __init__(self):
self.connection = "Connected to database"
# Problem: Multiple connections created
db1 = DatabaseConnection()
db2 = DatabaseConnection() # Wasteful - creates another connectionBir tasarım pattern'i ile daha iyi bir çözüm elde edersiniz:
# With Singleton pattern - controlled approach
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
# Now only one connection exists
db1 = DatabaseConnection()
db2 = DatabaseConnection()
print(db1 is db2) # True - same instanceTasarım kalıpları neden kullanılır:
- Yeniden kullanılabilirlik: Benzer sorunlara uygulayabileceğiniz çözümler
- İletişim: Geliştiriciler arasında ortak bir kelime dağarcığı
- En İyi Uygulamalar: Zaman içinde kanıtlanmış çözümler
- Bakım Kolaylığı: İyi yapılandırılmış, düzenli kod
Bu seride öğrenecekleriniz:
Yaratımsal Kalıplar (nesnelerin nasıl oluşturulduğu):
- Singleton Kalıbı - Yalnızca bir örnek
- Factory Kalıbı - Tam sınıfı belirtmeden nesneler oluşturma
Yapısal Kalıplar (nesnelerin nasıl oluşturulduğu):
- Adapter Kalıbı - Uyumsuz arayüzlerin birlikte çalışmasını sağlar
- Decorator Kalıbı - Yapıyı değiştirmeden işlevsellik ekler
Davranışsal Kalıplar (nesnelerin nasıl etkileşimde bulunduğu):
- Observer Kalıbı - Birden çok nesneyi değişikliklerden haberdar etme
- Strategy Kalıbı - Algoritmaları dinamik olarak değiştirme
- Command Kalıbı - İstekleri nesneler olarak kapsülleme
Her tasarım deseni dersi şunları ele alacaktır:
- Hangi problemi çözdüğü
- Python'da nasıl uygulanacağı
- Ne zaman kullanılacağı
- Gerçek dünya örnekleri
Temel Nokta: Tasarım kalıpları, yaygın programlama sorunlarına yönelik kanıtlanmış çözümlerdir. Kodunuzu daha sürdürülebilir, esnek ve anlaşılması daha kolay hâle getiren ortak bir söz dağarcığı ve en iyi uygulamalar sağlarlar. Her Python geliştiricisinin bilmesi gereken 7 temel kalıbı öğreneceksiniz.
Kendin dene
Bu ders bir kod alıştırması içermiyor.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesnelerself ParametresiMetotlarÖzniteliklerYapıcı Metot (__init__)Özet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtımsuper() FonksiyonuMetot Geçersiz KılmaÇoklu KalıtımMetot Çözümleme SırasıÖzet - Çalışan Hiyerarşisi7Özel Metotlar
Sihirli Metotlara GirişOperatör Aşırı YüklemeKapsayıcı Sihirli MetotlarıÖzet - Özel Liste10Tasarım Kalıpları Bölüm 1
Tasarım kalıplarına girişSingleton KalıbıFactory KalıbıObserver KalıbıStrategy Kalıbı13Final Meydan Okumaları
E-öğrenme PlatformuBankacılık SistemiOyun Karakteri GeliştirmeAraç Kiralama Servisi5Çok Biçimlilik (Polymorphism)
Metot Geçersiz Kılmaya Yeniden BakışDuck TypingSoyut Sınıflar ve MetotlarArayüz TasarımıÖzet - Şekil Hesaplayıcı8İleri Düzey OOP Kavramları
Kompozisyon ve KalıtımMixinsStatik ve Sınıf MetotlarıSınıf DekoratörleriBağlam Yöneticileri11Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit KalıbıKendi başına pratik yap: Online Python derleyicisi