Tasarım Deseni (Design Pattern) Nedir? Neden kullanmalıyız?

Tasarım desenleri -design pattern olarak anılırlar genelde-yazılım tasarımı sürecinde sürekli karşılaşılan problemlere tecrübeler doğrultusunda kaliteli çözümler üreten hazır kalıplardır. İstenilen yere gömüp çalışan hazır tasarımlar değildirler. Aslında problemlere getirilen çözümlere yapılan açıklamalardır.

Nesneye yönelik programlama prensipleri doğrultusunda oluşturulan sınıfların başka sınıflara bağımlılığının en az olması beklenir. Bu durum beraberinde esnek yapıyı getirir ve yazılımımızın kalitesini artırır. İleride gerekecek genişlemelere daha müsait bir yapı sağlamış olursunuz ve yapacağınız değişikliklerde daha rahat edersiniz. Bu yapı, yazılımcıya ve o yazılımcıdan sonra gelecek yazılımcıya zamandan ve iş gücünden ciddi manada tasarruf sağlar.

1994 yılında Gang of Four (dörtlü çete) olarak tanınan “Erich Gamma”, “Richard Helm”, “Ralph Johnson” ve “John Vlissides” isimli yazarlar,  sektörde en çok kullanılan 23 desene yer verdikleri bir kitap piyasaya çıkardılar. Kitabı merak edenler buradan görebilirler. Piyasada bulmanız mümkün olmayabilir belki ama üniversite kütüphanelerinde çevrimiçi olarak en azından kitabın bir kısmına erişmeniz mümkün.

Hem desenlerle ilgili hem de kitap ile ilgili daha detaylı bilgiye buradan ulaşabilirsiniz.

Geçtiğimiz günlerde (6 Temmuz 2013) düzenlenen PHP-ist Konferansı’nda da İbrahim Gündüz, bu konuya değinmişti. Sunumu esnasında kullandığı slayta da şuradan ulaşabilirsiniz. Çok merak ediyor ve bu konu üzerinde ciddi kafa yoruyorsanız o konferansın video kaydı da daha sonradan yayınlandı. Merak ettiğinizi, izlemek isteyebileceğinizi düşünerek onun da linkini paylaşmak isterim.

Tasarım şablonları aşağıda yer alan ortak özelliklere sahiptir:

  • Edinilen tecrübeler sonunda ortaya çıkmışlardır.
  • Tekerin tekrar icat edilmesini önlerler.
  • Tekrar kullanılabilir kalıplardır.
  • Ortak kullanılarak daha büyük problemlerin çözülmesine katkı sağlarlar.
  • Devamlı geliştirilerek, genel bir çözüm olmaları için çaba sarfedilir.

Tasarım şablonları değişik kategorilere ayrılır. Bunlar:

  • Oluşturucu tasarım şablonları (creational patterns)
  • Yapısal tasarım şablonları (structual patterns)
  • Davranışsal tasarım şablonlar (behavioral patterns)

Oluşturucular

  • Abstract Factory (soyut fabrika)
  •  Builder (inşaatçi)
  •  Factory Method (fabrika)
  •  Prototype  (prototip)
  • Singleton (yanlızlık)

Yapısal

  • Adapter
  • Bridge (köprü)
  • Facade (cephe)
  • Decorator (dekotatör)
  • Composite (kompozit)
  • Flyweight (sinek siklet)
  • Proxy (vekil)

Davranışsal

  • Command (komut)
  • Memento (hatıra)
  • Strategy (strateji)
  • Iterator (tekrarlayıcı)
  • State (durum)
  • Chain Of Responsibility (sorumluluk zinciri)
  • Mediator (aracı)
  • Observer (gözlemci)
  • Template Method (şablon metot)
  • Visitor (ziyaretçi)

Daha detaylı bilgiyi Google’da yapacağınız araştırmalar sonucu bulabilirsiniz. Bu yazı en azından konuya bir giriş olması, kafanızda bir fikir oluşması açısından yararlı olabilir.

Bu yazı Programlama kategorisine gönderilmiş ve , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Tasarım Deseni (Design Pattern) Nedir? Neden kullanmalıyız? için 2 cevap

  1. Sonraki Yazılımcı der ki:

    Slm,

    Bu makale internette Onur Canalp isimli vatandaşınki ile aynı. Sen mi ondan aldı, yoksa o mu senden? Orjinal olan hanginizinki?

    • Bilal Baraz der ki:

      Kimseyi zan altında bırakmayalım fakat yayınlanma tarihlerine bakarak kendinizce bazı sonuçlara varabilirsiniz. 21 Temmuz 2013 < 20 Aralık 2013 Ben şahsen yararlandığım kaynakları mümkün mertebe yazı sonunda paylaşmaya gayret ediyorum.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir