CodeBlanks Logo Icon CodeBlanks

Özet - Tasarım desenleri

Singleton, Factory ve Strategy'i birleştirerek bir ödeme sistemi yazarsın.

Özet - Tasarım desenleri

Bu grupta beş temel tasarım desenini öğrendin. Singleton tek örnek, Factory sınıf seçimi, Strategy çağrılabilir algoritma, Observer abonelik bildirimi, Decorator sarmalayıcı genişletme sağlar.

# Singleton + Factory + Strategy birleşimi
reg = Config()  # Singleton
strategy = payment_factory("credit")  # Factory
print(strategy(100))  # Strategy çağrılır

Son adımda üç deseni birleştirerek bir ödeme sistemi yazacaksın.

Uygulama Ödeme sistemi

class Config: tanımla (Singleton deseni): _instance = None özniteliği ekle, def __new__(cls): metodu if cls._instance is None: cls._instance = super().__new__(cls) ve return cls._instance yapsın. def credit_pay(amount): işlevi return f"kredi: {amount}" yapsın. def debit_pay(amount): işlevi return f"banka: {amount}" yapsın. def payment_factory(name): işlevi if name == "credit": return credit_pay, if name == "debit": return debit_pay yapsın. cfg = Config() ile örnek al. strategy = payment_factory("credit") ile strateji seç. print(strategy(100)) ile ödemeyi yazdır.

Başlangıç kodu

main.py
# Config sınıfını tanımla (Singleton: _instance, __new__)
# credit_pay ve debit_pay işlevlerini tanımla (Strategy)
# payment_factory işlevini yaz (Factory: isimden strateji döndür)
# Config örneği al, 'credit' stratejisini seç ve ödemeyi yazdır

Örnek çözüm

main.py
class Config:
    _instance = None
    def __new__(cls):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
        return cls._instance

def credit_pay(amount):
    return f"kredi: {amount}"

def debit_pay(amount):
    return f"banka: {amount}"

def payment_factory(name):
    if name == "credit":
        return credit_pay
    if name == "debit":
        return debit_pay

cfg = Config()
strategy = payment_factory("credit")
print(strategy(100))

Beklenen çıktı

kredi: 100

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi tek örnek garanti eder?

  • Factory
  • Singleton Doğru cevap
  • Strategy
  • Observer

Açıklama: Singleton, bir sınıftan tek örnek oluşturulmasını sağlar.

2 Grup araçlarını eşleştir

Kavram Anlamı
Singleton Tek örnek
Factory Sınıf seçimi
Strategy Çağrılabilir algoritma
Observer Abonelik bildirimi

İleri seviye bölümündeki tüm dersler