1 - Tasarım Desenleri

Merhabalar,

Tasarım desenleri deneyimli nesne tabanlı yazılım geliştiriciler tarafından kullanılan en iyi yöntemleri temsil eder. Bu yöntemler sınıf ve nesnelerin ya oluşumuna(kurulumuna) bir çözüm önerir, ya yapısının nasıl olması gerektiğine bir çözüm önerir ya da davranışının nasıl olması gerektiğine bir çözüm önerir. Böylece ilerleyen yazılarımızda tek tek ele alacağımız desenler 3 başlık altında toplanmış oluyor.

  • Kurucu Desenler
  • Yapısal Desenler
  • Davranışsal Desenler

Nesneye dayalı programlamada sınıfların kendi içinde tutarlı, fakat diğer sınıflara en az bağımlı olmaları beklenir. Yazılım parçalarının tekrar kolayca kullanılabilir olmaları, kolayca genişleyebilir veya sistemden kolayca çıkarılabilir olmaları yani kısaca esnek olmaları beklenir. Yeni ihtiyaçların, yazılımın diğer kısımlarını en az biçimde etkileyerek yazılıma kolayca dahil olmaları beklenir.(Open-Closed Principle) İşte tasarım desenleri, nesneye dayalı programlamanın bu prensiplerini doğru bir şekilde uygulamamızı sağlar.

Tasarım desenlerinin önemi özellikle kurumsal projelerde daha da ön plana çıkmaktadır. Eğer ki küçük bir uygulama geliştiriyorsanız bu desenlere hiç ihtiyacınız olmayabilir ya da “kullanmasam da olur” diyebilirsiniz. Fakat kurumsal bir projede, on binlerce satır koddan oluşan bir projede zaman zaman spesifik problemlerle karşılaşabilirsiniz. “Spesifik” diyorum çünkü sizin karşılaştığınız problemlerin bir benzeriyle insanların başka projelerde de karşılaşmış olma olasılığı yüksektir. Zaten tasarım desenlerinin çıkış noktası da tam olarak burasıdır.

Tabii ki bu demek değildir ki proje geliştirme esnasında kesinkes tıkandığımız noktalar olacak ve desenler uygulayarak bu sıkıntıların üstesinden geleceğiz. Bu çok iddialı bir cümle olur J Bu noktaya bir açıklık getirelim ; tasarım desenleri sadece problem var, uygula ilgili deseni çöz şeklinde şeyler değildir. Bazen öyle olur ki çetrefilli bir problemi güzelce çözersiniz ve uygulamanızı ayağa kaldırırsınız. Aradan zaman geçer ve bu çetrefilli bu problemin bir benzeri daha karşınıza çıkar ve hatta ortak yönleri de çok fazladır J  Çok geç kalmış sayılmazsınız, daha da sonrasını düşünerek yada aynı projede çalışan başka developerların da aynı sıkıntıyı yaşayabileceğini düşünerekten eğer ki x tasarım deseni size çözüm olarak görünüyorsa o deseni uygularsınız ve gerek kod tekrarından gerek her defasından yap-yık yapmaktan kurtulmuş olursunuz.

Bir şu noktaya değinmek isterim; genelde java, .Net gibi object oriented dillerle uygulama geliştirirken bu dillerin bize sunduğu birçok güzelliği atlarız J Bunun en büyük sebebi genelde bizde projeler hep acildir, proje takvimlerimiz hep kısadır J Hal böyle olunca da anlık çözümlerle ilerleriz. Eğer biz projelerimizde tasarım desenlerini kullanabilirsek nesneye dayalı programlamanın bir çok prensibini de kullanmış oluruz.

Evet, tasarım desenlerinin güzelliğinden, gerekliliğinden bahsettik ancak şöyle de bir gerçek var ki projelerde bu kestirimi yapabilmek ya da doğru kestirimi yapabilmek çokta kolay olmayabilir J İşte bu noktada da tecrübelerimiz ortaya çıkıyor. Ne kadar çok görüp geçirdiysek o kadar çok ve o kadar çabuk ideal tasarımı yapabiliriz projelerimizde.

Sonuç olarak tasarım desenlerini uygulayarak, etkin kodlar üretiriz, yazılımın kalitesini arttırırız. Zamandan ve yazılım için harcanan iş gücünden de tasarruf etmiş oluruz. Bundan sonraki yazılarımda da tasarım desenlerini tek tek ele alarak, amacını, nerede ve nasıl kullanıldığını olabildiğince gerçekçi örneklerle anlatmaya çalışacağım.

Görüşmek dileğiyle…

Yazıyı beğendiyeseniz sosyal medyada paylaşabilirsiniz.

Yazar Hakkında

Avatar
Ali Çevik

cialis generic kamagra gel cheap cialis uk levitra uk cialis generic kamagra gel kamagra 100mg cheap cialis uk cheap levitra uk cheap cialis kamagra 100mg cialis tadalafil kamagra oral jelly cialis buy viagra generic levitra uk kamagra gel cialis generic cheap levitra cheap viagra uk

Yorumlar

Yorum Yazın

.com

Bülten Üyeliği

Güncel eğitim ve etkinliklerden ilk haberdar olmak için ücretsiz abone olun.

Login

Login olmak için kullanıcı adınızı ve şifrenizi giriniz.

Şifremi Unuttum

×

Hızlı İletişim

Her konuda bana yazabilirsiniz. En kısa zamanda cevap vereceğim.

×