Aylar: Kasım 2018

Singleton Design Pattern

Singleton’ı şu iki maddede özetleyebiliriz. Bir sınıfın bir örneği olacağını garanti eder. Bu sınıfı global bir erişim noktası yapar. Bir design pattern’ı kullanmadan önce onun zayıf yanlarını iyi bilmek gerek. Profesyonel hayatta, her yanından Singleton fışkıran kodlara gülündüğüne bir çok kez şahit oldum. Bu kahkahaların sebebini araştırırken okuduğum ve içlerinden notlar aldığım bir kaç yazı var. Singleton’ı uygulamadan önce bu notları sizlerle paylaşmak isterim. Use Your Singletons Wisely (Singletonlarınızı Bilgece Kullanın) Yazı, neyin gerçekten Singleton olması gerektiğini sorguluyor. Bu sorgulamayı yapmadan önce, Singleton’ın sınıflar arası bağımlığı artırdığını belirtiyor. Yani Singleton’ın göründüğü kadar masum olmadığı konusunda yazar ile aynı fikirdeyiz. Yazının

Okumaya devam et

Command Design Pattern

Bu yazıma başlamadan önce, eğer okumadıysanız acilen okumanız gereken bir kaynak önermek istiyorum; “Robert Nystrom – Game Programming Patterns“. Bu kitapta, oyun dünyasındaki genel problemleri çözmek için kullanılan design pattern’lardan oldukça detaylı olarak bahsediliyor. Senaryo 20×20 birimlik bir tabanın üzerinde, her seferinde bir birim olmak üzere aşağı, yukarı, sağa ve sola hareket edebilen bir küp düşünün. Bu kübün her hareketi, geri alınabilir olsun. Yani küp “yukarı, yukarı, sol, sol” hareketini tamamladıktan sonra, her “geri al” komutu verildiğinde, “sağ, sağ, aşağı, aşağı” komutlarını tekrarlayarak, başlangıç noktasına dönsün. Adım 1 – Command Design Pattern’a Giriş Command Design Pattern’da, isteklerimizi komut nesneleri olarak

Okumaya devam et

Observer Design Pattern

Observer Design Pattern (Gözlemci Tasarım Deseni), iki ana bileşenden oluşur; Subject ve Observer… Subject, üzerinde değişimlerin gözlendiği, gözlenmek istendiği bileşendir. Observer ise bir subject’teki değişimleri gözlemlemek için kullanılan bileşendir. Observer Design Pattern’da, bir subject’teki değişimden, onu gözleyenler haberdar edilir. Observer Pattern’ı bir başarımlar sistemi kurmak için kullanabiliriz. Buna yönelik bir senaryo belirleyip, bu senaryoyu Observer Design Pattern kullanarak çözelim. Senaryo Oyunumuzda bir skor verisi olduğunu düşünelim. Bu skor verisindeki değişiklikleri gözleyen 3 adet de başarımımız olsun. Başarımlarımız kendi hedef skorlarına geldiklerinde açılsınlar ve başarılmış olsunlar. Adım 1 ScoreDataSubject isimli bir nesne oluşturalım. Bu nesne, dinleyeceğimiz nesne. Bütün observer’larımız, bu nesneye

Okumaya devam et