Tasarım Desenleri — Design Patterns

Merhabalar, bu yazıda Tasarım Desenleri (Desing Patterns) kullanımına değineceğim. Tasarım desenleri, yazılım geliştirirken sıklıkla karşılaşılan sorunlara nesneler ve sınıflar ile ilişkileri ve etkileşimleri ile çözümler getiren kalıplardır. Tasarım desenleri 3 ana gruba ayrılır.

Behavioral Patterns (Davranışsal Desenler)

Chain of Responsibility (Sorumluluk Zinciri) : Bir isteğin belli sınıflar içinde gezdirilerek ilgili sınıfın işlem yapmasını yöneten tasarım desenidir.
Command (Komut) : İşlemlerin nesne haline getirip, başka bir nesne ile tetiklenen tasarım desenidir.
Interpreter (Yorumlayıcı) : İşlemlerin nesne haline getirip, başka bir nesne ile tetiklenen tasarım desenidir.
Iterator (Tekrarlayıcı) : Behavior grubuna ait, nesne koleksiyonlarının elemanlarını belirlenen kurallara göre elde edilmesini sağlayan tasarım desenidir.
Mediator (Aracı) : Çalışmaları birbirleri ile aynı arayüzden türeyen nesnelerin durumlarına bağlı olan nesnelerin davranışlarını düzenler.
Memento: Bir nesnenin tamamının veya bazı özelliklerinin tutularak sonradan tekrar elde edilmesini sağlar.
Observer (Gözlemci): Bir nesnede meydana gelen değişikliklerde içinde bulundurduğu listede bulunan nesnelere haber gönderen tasarım desenidir.
State : Nesnelerin farklı durumlarda farklı çalışmalarını sağlar.
Strategy: Bir işlemin birden fazla şekilde gerçekleştirile bilineceği durumları düzenler.
Template Method: Bir algoritmanın adımlarının abstract sınıfta tanımlanarak farklı adımların concrete sınıflarında overwrite edilip çalıştırılmasını düzenler.
Visitor: Uygulamada ki sınıflara yeni metotlar eklenmesini düzenler.

Creatinal Patterns (Kurucu Desenler)

Singleton: Uygulamanın yaşam süresince bir nesnenin bir kez oluşturulmasını sağlar.
Abstract Factory: Birbirleri ile ilişkili sınıfların oluşturulmasını düzenler.
Builder : Birden fazla parçadan oluşan nesnelerin üretilmesinden sorumludur.
Factory Method: Aynı arayüzü kullanan nesnelerin üretiminden sorumludur.
Prototype: Var olan nesnelerin kopyasının üretiminden sorumludur.

Structural Patterns (Yapısal Desenler)

Adapter: Uygulamada ki bir yapıya dışarıdaki bir yapıyı uygulamayı düzenler.
Bridge: Nesnelerin modelleme ve uygulanmasını ayrı sınıf hiyerarşilerinde tanımlanmasını düzenler.
Composite: Ağaç yapısında ki nesne kalıplarının hiyerarşik olarak iç içe kullanılmasını düzenler.
Decorator: Bir yapıya dinamik olarak yeni metotlar eklenmesini düzenler.
Facede: Alt sistemlerin direkt olarak kullanılması yerine alt sistemdeki nesneleri kullanan başka bir nesne üzerinden kullanılmasını sağlar.
Flyweight: Sık kullanılan nesnelerin bellek yönetimini kontrol etmek için kullanılan bir tasarım desenidir.
Proxy: Oluşturulması karmaşık veya oluşturulması zaman alan işlemlerin kontrolünü sağlar.