Behavioral Design Patterns

Belirli görevlerin bu işleri yapmak üzere tasarlanmış nesnelere gönderilmesi ve geri dönen sonuçların işlenmesi davranışsal tasarım kalıpları içerisinde yapılan bir işlemdir. Davranışsal tarım kalıpları içerisinde bilinen ve sıklıkla kullanılan kalıplar şu şekildedir.

  • Command Pattern (Komut Kalıbı) Bir nesne üzerindeki işlemlerin yapılmasındaki süreci bilmediğimizde ya da kullanılmak istenen nesnenin tanınmadığı durumlarda, komut tasarım kalıbı ile yapılmak istenen işlem bir nesneye dönüştürülerek, alıcı nesne tarafından işlemin yerine getirilmesi amaçlanmaktadır.

  • Memory Pattern (Hatıra Kalıbı) Bir nesnenin, daha önce sahip olduğu durumlardan birine tekrar dönüştürülebilmesi için hatıra tasarım kalıbı kullanılır. Bu sayede belirli durumlardan sonra nesnelerin aldıkları çeşitli durumların kolaylıkla değiştirilebilmesi ve bu durumların farklı sınıflarda tanımlanarak kullanılabilirliğinin arttırılması amaçlanmaktadır.

  • Strategy Pattern (Strateji Kalıbı) Bir işlemin yerine getirilmesi için birden fazla metot kullanılıyor olabilir. İhtiyaçlara göre bir metodun seçilip, uygulaması için strateji tasarım kalıbı kullanılmaktadır. Her metot bir sınıf içinde tanımlanabilir.

  • Iterator Pattern (Tekrarlayıcı Kalıbı) Tekrarlayıcı tasarım kalıbı ile bir listede yer almakta olan nesnelerin sırasıyla, listenin yapısını ve çalışma tarzının uygulamanın diğer kısımları ile olan bağlantılarını en aza indirmek için uygulamadan soyutlama amaçlı kullanılabilmektedir.

  • State Pattern (Durum Kalıbı) Durum tasarım kalıbı kullanarak, bir nesnenin metotları, sahip olduğu özellikler değiştiği zaman değiştirilebilir. Bu durumda nesnenin sahip olduğu sınıf yapısı değiştirilmiş olacaktır.

  • Chain of responsibility Pattern (Sorumluluk Zinciri Kalıbı) Sorumluluk zinciri kalıbı sisteme gönderilen bir isteğin (komut) hangi nesne tarafından cevaplanması gerektiğini bilmediğimiz durumlarda ya da isteği yapan nesne ve servis sağlayan nesne arasında sıkı bir bağ oluşmasını engellememiz gerektiğinde kullanılmaktadır. Bu tasarım kalıbında servis sağlayan ilgili tüm nesneler birbirleriyle ilişkili hale getirilir. Bir nesne zincirdeki kendinden sonraki nesneyi tanır ve isteğe cevap veremediği durumda, kendinden sonraki nesneye iletir. Bu işlem, zincirde bulunan doğru servis sağlayıcı nesneyi bulana kadar devam eder.

  • Mediator Pattern (Aracı Kalıbı) Aracı tasarım kalıbı nesnelerin yönetimi ve aralarındaki iletişimin merkezi bir noktadan sağlanması ve yönetilmesi için kullanılmaktadır. Bu nesneler arasındaki bağı azaltmakta ve sadece bir sınıfı, yönetici sınıf olarak diğer sınıfların koordine edilmesinden sorumlu kılar.

  • Observer Pattern (Gözlemci Kalıbı) Uygulama içerisinde bir nesnede meydana gelen değişikliklerden haberdar olup üzerinde belli metotları çalıştırıp değişlikler yapmak isteyen diğer nesneler bulunabilmektedir. Bu durumda haberdar olmak isteyen nesneler diğer nesne ile ilişkilendirilerek, ilişkili oldukları nesnede meydana gelen değişikliklerden haberdar edilebilmektedirler. İlişki içerisinde olan nesne ile bağlantı iptal edilerek, ilişkili olduğu nesne ile arasındaki bağ sonlandırılabilir.

  • Template Pattern (Şablon Kalıbı) Şablon kalıbı ile bir algoritma için gerekli işlemler soyut olarak tanımlanır. Alt sınıflar algoritma için gerekli bir yada birden fazla işlemi kendi bünyelerinde gerçekleştirerek, kullanılan algoritmanın kendi istekleri doğrultusunda çalışmasını sağlayabilmektedirler.

  • Visitor Pattern (Ziyaretçi Kalıbı) Ziyaretçi tasarım kalıbı, bir sınıf hiyerarşisinde yer alan sınıflar üzerinde değişiklik yapmadan, bu sınıflara yeni metotların eklenmesini kolaylaştırır. İstenilen metot bir ziyaretçi sınıfında tanımlanabilir. Burada bahsedilen kalıp programcı tarafından farkında olmadan sıklıkla kullanılmaktadır. C# 3.0 ile gelen partial(bölümsel) sınıfların tanımlanabilmesi bu kalıbın gelişmesini sağlamıştır.

  • Interpreter Pattern (Yorumlayıcı Kalıbı) Sıklıkla karşılaşılan belli mantıksal kalıpların bir bütün içerisinde yer almasını sağlamak amacıyla kullanılmaktadır. Dil bilgisi kuralları gibi kalıplar içerisinde yer alan ifadelerin yorumlanması amacıyla kullanılması tercih edilmektedir.

Last updated