Yazılım Tasarım Desenleri (DESIGN PATTERN)

Yazılım mühendisliğinde, bir tasarım deseni, yazılım tasarımında yaygın olarak ortaya çıkan bir sorun için genel olarak tekrarlanabilir bir çözümdür. Bir tasarım deseni doğrudan koda dönüştürülebilen bitmiş bir tasarım değildir. Birçok farklı durumda kullanılabilecek bir problemin nasıl çözüleceği ile ilgili bir açıklama veya şablondur.

 

Beklendiği gibi, bir programlama projesi üzerinde çalışan herkes muhtemelen aynı düşünceye sahipti. Özellikle onlarca, hatta yüzlerce geliştiriciyle çalışmanın yaygın olduğu endüstri düzeyindeki herhangi bir proje için; İşbirliği süreci, kodu daha zarif ve değişikliklere daha uyumlu hale getirmek için bazı standartlar ve kurallar olması gerektiğini önermektedir. Bu nedenle nesne yönelimli programlama (OOP) ve yazılım çerçeve araçlarına sahibiz. Bir tasarım deseni, OOP’a biraz benzemektedir, ancak değişiklikleri doğal gelişim sürecinin bir parçası olarak ele alarak daha da ileri gider. Temel olarak, tasarım deseni soyutlamalar ve ara yüzler gibi bazı OOP fikirlerinden yararlanır, ancak değişim sürecine odaklanır.

 

 

Bir proje üzerinde çalışmaya başladığınızda, sık sık yeniden düzenleme terimi duyarsınız; bu, kodu daha şık ve tekrar kullanılabilir olacak şekilde değiştirmek anlamına gelir; tasarım deseni burada parlıyor. Var olan kod üzerinde çalışırken (ister bir başkası tarafından ister kendi kişisel geçmişiniz), tasarım kalıplarını bilmek, bazı şeyleri farklı görmeye başlamanıza yardımcı olur. Kodu geliştirmek için sorunlar ve yollar keşfedeceksiniz.

 

Tasarım Desenlerinin Kullanımı

 

Tasarım kalıpları, test edilmiş ve kanıtlanmış geliştirme paradigmaları sağlayarak geliştirme sürecini hızlandırabilir. Etkili yazılım tasarımı, uygulamada daha sonraya kadar görülmeyecek hususları dikkate almayı gerektirir. Tasarım desenlerini yeniden kullanmak, büyük sorunlara neden olabilecek ince sorunları önlemeye yardımcı olur ve kalıpları tanıyan kodlayıcılar ve mimarlar için kod okunabilirliğini artırır.

 

Genellikle, insanlar yalnızca belirli yazılım tasarım tekniklerini belirli sorunlara nasıl uygulayacağını bilirler. Bu tekniklerin daha geniş bir problem yelpazesine uygulanması zordur. Tasarım desenleri, belirli bir soruna bağlı özellikleri gerektirmeyen bir formatta belgelenen genel çözümler sunar.

 

Ek olarak, kalıplar, geliştiricilerin, yazılım etkileşimleri için iyi bilinen, iyi anlaşılan adları kullanarak iletişim kurmasına izin verir. Ortak tasarım desenleri zaman içinde geliştirilebilir ve bu da onları geçici tasarımlardan daha güçlü kılar.

 

Yaratıcı tasarım desenleri

 

Bu tasarım desenlerinin hepsi sınıf örneği ile ilgilidir. Bu model daha sonra sınıf oluşturma modellerine ve nesne oluşturma modellerine ayrılabilir. Sınıf oluşturma kalıpları, örnekleme sürecinde mirasını etkin bir şekilde kullanırken, nesne oluşturma kalıpları işi yapmak için temsilciliği etkin bir şekilde kullanır.

 

Davranışsal tasarım desenleri

 

Bu tasarım desenleri, tamamen Class’ın nesne iletişimi ile ilgilidir. Davranışsal desenler, nesneler arasındaki iletişimle en özel olarak ilgilenen kalıplardır.