Design Patterns (Tasarım Desenleri/Kalıpları) Nedir ?

Kalıplar, yazılım geliştiricilerinin zamanla edindikleri tecrübeler sonucu geliştirilmiş yazılım geliştirme teknikleridir. Yazdığımız sınıflar ve bu sınıflardan oluşturduğumuz nesnelerin birbirleri ile olan ilişkileri kalıpları oluşturur.

Kalıplar, kullanım alanlarına göre farklılık gösterse de ortak birtakım özellikleri bulunmaktadır. Bunlar;

tekrar eden bir probleme karşı geliştirilmişlerdir, tekrar kullanılabilirdirler, problem çözümü için yeniden uğraştırmazlar ki bu yazılım dünyasında tekerliği yeniden icat etmeye gerek yok diye bilinir ve en önemlisi uzun yıllar elde edilen tecrübeler sonucu ortaya çıkmalarıdır.

Kalıpları oluşturan kurallar vardır. Bu kurallar geliştirme kuralları değildir. Kullanılan dilden ve platformdan bağımsızdır. Tamamen problem odaklı geliştirilmişlerdir. Bu kuralların ve tasarım kalıplarının bir başka artısı da okunabilirliği artırmaktır. Başka bir geliştiricinin kodunu anlamak bir hayli zordur.

Tasarım desenleri ile algoritmayı karıştırmamak gerekir. Algoritmalar bir hesaplama problemini veya bir işlem problemini çözerler. Tasarım kalıpları ise yazılım tasarımı ile ilgilidir. Kalıpların ilgilendiği iki önemli konu vardır, tekrar kullanılabilirlik ve esneklik. Yazmış olduğunuz kod modülleri bu iki esasa uygun olarak çalışıyorsa kalıplara uygun bir yazım ile geliştirilmiştir.

Neden tasarım kalıpları kullanmalıyım, gerekli mi sorusunun cevabı olan bu iki esasın önemini ilk kullanmaya başladığınız andan itibaren anlayacaksınızdır.