Design Patterns

Yazılım geliştirme esnasında sıkça karşılaşılan sorunlar için, sıkça kullanılan çözümler vardır. Bunlar tıpkı bir şablon gibidir ve ilgili sorun ile ile karşılaşıldığında uygulanırlar. Bu çözümler döngüler, diziler gibi temel kavramlardan daha uzak, nispeten daha karmaşık yapılardır. Bu çözümler bir kütüphane gibi kullanabileceğiniz hazır yapılar olmaktan ziyade, fikir seviyesindedir ve haliyle soyuttur. Yazılımın özellikle mimarisini ilgilendiren bu kalıplar, algoritmalardan farklıdır. Zaten ortaya çıkışları da inşaat mimarisinden esinlenerek mümkün olmuştur. Özetle elinizdeki çimento, demir ve kumu kullanarak her türlü yapıyı inşa etmeniz mümkündür. Kolon veya kiriş yapmanın yöntemlerini biliyor olabilirsiniz. Ancak köprü yapmak ayrı, villa yapmak ayrı beceri ve bilgi gerektirir.

Tasarım kalıplarını bilmeyen bir yazılımcı işini uzun süre yapabilir. Yani bu kalıpları bilmemek çalışmanıza engel değildir. Yine bu kalıpları bilmeyenler, iş görüşmelerindeki en popüler cevaplardan olan “Design pattern kullanmışımdır, ancak farkında olmadan…” cevabını verebilir. Fakat bu konulardaki farkındalığın yükselmesi ve çözüm noktasında ortak bir dil oluşturabilmek adına bu kalıpların öğrenilmesi faydalı olacaktır. Aynı şekilde yazılım anlamında, üretim verimliliğini sağlamak için bu kalıpları öğrenmek gereklidir. Yine bir inşaattan örnek verecek olursak; derme çatma bir apartman ile bir mimarın/mühendisin elinden çıkmış apartman, tahmin edersiniz ki, aynı görüntüde, kalitede ve dayanıklılıkta olmayacaktır.

Tasarım kalıpları 3 ana başlık altında incelenmektedir.

  • Creational Patterns: Yapıların oluşturulması ile ilgili olan tasarım kalıplarıdır
  • Structural Patterns: Yapıların kombine edilip farklı bir yapının nasıl oluşturulacağı ile ilgili olan tasarım kalıplarıdır
  • Behavioral Patterns: Bir arada çalışan yapıların birbirleri ile olan ilişkilerini ele alan tasarım kalıplarıdır

Tanımlardan da görüldüğü üzere her programcının karşısına çıkacak olan olguları ele almaktayız. Öyleyse bu kalıpları öğrenmek gerçekten mantıklı ve işe yarar bir eylem olacaktır.

Leave a Reply

Your email address will not be published. Required fields are marked *