GoF ve Üç Temel Kategori
1994'te Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides — "Gang of Four" (Dörtlü Çete) — tarafından yayımlanan kitap, 23 nesne yönelimli tasarım kalıbını kodlamıştır. Bu kalıplar üç kategoriye ayrılır: Yaratımsal Kalıplar (Creational) nesne oluşturmayı yönetir; Yapısal Kalıplar (Structural) sınıflar arası ilişkileri düzenler; Davranışsal Kalıplar (Behavioral) nesneler arası iletişimi tanımlar. Kalıplar belirli kodu dikte etmez; yalnızca belirli bir probleme karşı izlenebilecek genel çözüm yaklaşımını tarif eder. Bu sayede aynı kalıp Python'da da, Java'da da, TypeScript'te de uygulanabilir.
Temel Kalıplar ve Açıklamaları
Singleton: Bir sınıftan yalnızca tek nesne üretilmesini garanti eder; global model konfigürasyonu veya bağlantı havuzları için idealdir. Factory: Hangi somut nesnenin üretileceğini istemciden soyutlar; farklı veri kaynakları için okuyucu nesneleri üretmede kullanılır. Observer: Bir nesne değiştiğinde tüm aboneleri bilgilendirir; eğitim callback'leri bu kalıbın doğrudan uygulamasıdır. Strategy: Algoritma seçimini çalışma zamanına bırakır; model değişimi veya optimizasyon yöntemi geçişinde güçlüdür. Decorator: Kaynak kodu değiştirmeden nesneye yeni davranış ekler; önbellekleme veya loglama katmanları bu şekilde eklenir. Repository: Veri erişimini iş mantığından ayıran soyutlama katmanı; Feature Store'lar bu kalıpla inşa edilir.
Makine Öğrenmesi ve AI Sistemlerinde Kullanım
Tasarım kalıpları, ML/AI sistemlerinde üretim altyapısının temelini oluşturur. Strategy kalıbı, aynı arayüz üzerinden çalışma zamanında RandomForest, XGBoost veya bir sinir ağı arasında geçiş yapar; AutoML sistemleri bu kalıba yaslanır. Observer kalıbı, Keras'ın ModelCheckpoint/EarlyStopping ve PyTorch Lightning'ın Trainer callback'leri ile MLflow/W&B entegrasyonunda hayat bulur. Factory kalıbı, CSV, veritabanı veya API gibi farklı veri kaynaklarını tek bir arayüzden ele alır. Repository kalıbı ise Feast ve Tecton gibi Feature Store mimarilerinde depolama katmanını (PostgreSQL, S3, Redis) soyutlar; test sırasında sahte veri katmanı kullanımı kolaylaşır.
Agentic AI ve Mikroservislerde Kalıpların Evrimi
2025-2026 itibarıyla klasik GoF kalıpları, yeni bağlamlarda yeniden yorumlanmaktadır. Andrew Ng'in öne çıkardığı dört ajan tasarım örüntüsü — Reflection, Tool Use, Planning ve Multi-Agent Collaboration — sırasıyla Observer+Strategy, Facade+Command, Chain of Responsibility ve Mediator kalıplarının dönüşümüdür. HumanEval kıyaslamasında Reflection örüntüsünün kod doğruluğunu %80'den %91'e çıkardığı ölçülmüştür. Mikroservis mimarilerinde ise Circuit Breaker (Devre Kesici), API Gateway ve CQRS tasarım kalıpları geleneğini bulut-yerel sistemlere taşımaktadır.
Ajansal AI Tasarım Kalıpları
Yansıma (Reflection)
Ajan kendi çıktısını eleştirir ve yeniden üretir; tek geçişten daha yüksek kalite, iç geri bildirim döngüsü olarak işlev görür.
Araç Kullanımı (Tool Use)
LLM dış araçları (API, arama, kod çalıştırıcı) çağırır; bilgi kesme tarihini aşar ve hesaplamalı hataları azaltır.
Planlama (Planning)
Karmaşık hedefi alt görevlere böler ve yürütür; ReAct, Plan-and-Execute ve Task Decomposition bu kategoridedir.
Çok Ajan İşbirliği
Farklı uzmanlıkta ajanların hiyerarşik veya çapraz iletişimle görev paylaşımı; CrewAI, AutoGen ve LangGraph bu deseni uygular.
Sık Sorulan Sorular
- check_circle Tasarım kalıpları sadece nesne yönelimli diller için mi geçerlidir? Hayır. GoF kalıpları nesne yönelimli bağlamda tanımlansa da ilkeleri işlevsel programlama, mikroservisler ve ajan tabanlı AI sistemlerine uyarlanmaktadır. Python'daki dekoratör sözdizimi, Decorator kalıbının dil düzeyinde doğrudan bir uygulamasıdır.
- check_circle Singleton kalıbı neden eleştiriliyor? Singleton, global durum yaratarak birim testlerde izolasyonu zorlaştırır ve çoklu iş parçacıklı (multi-threaded) ortamlarda dikkatli senkronizasyon gerektirir. ML bağlamında paylaşılan bir model nesnesinin iş parçacıkları arasında güvenli kullanımı bu sorunu somutlaştırır.
- check_circle Strategy ve Factory kalıpları arasındaki fark nedir? Factory, nesne oluşturma sürecini soyutlar (hangi nesne yaratılacak?). Strategy, davranışı soyutlar (hangi algoritma kullanılacak?). ML'de Factory model nesnelerini üretirken Strategy hangi modelin seçileceğini çalışma zamanında belirler; ikisi sıklıkla birlikte kullanılır.
- check_circle Gerçek bir ML projesinde Observer kalıbını nerede görürüm? Keras'ta ModelCheckpoint, EarlyStopping ve TensorBoard callback'leri; PyTorch Lightning'da Trainer callback'leri; MLflow ve Weights & Biases entegrasyonları hepsi Observer kalıbını uygular. Eğitim döngüsü (konu) metrik değişimlerini abone callback'lere (gözlemcilere) bildirir.
- check_circle Agentic AI tasarım örüntüleri klasik tasarım kalıplarından nasıl farklılaşır? Klasik GoF kalıpları senkron, deterministik kod yapılarını hedeflerken ajan örüntüleri asenkron, olasılıksal ve çok adımlı akıl yürütme süreçlerini yönetir. Reflection örüntüsü, modelin kendi çıktısını değerlendirip iyileştirdiği bir Observer+Strategy döngüsüdür; bu düzey otonomluk GoF'ta tanımlanmamıştır.