Bilişim

Tasarım Desenleri (Design Patterns) ve Kullanım Alanları

Tasarım Desenleri (Design Patterns) ve Kullanım Alanları. Yazılım mühendisliğinde Tasarım Deseni, yazılım tasarımında yaygın olarak ortaya çıkan bir soruna yönelik genel, tekrarlanabilir bir çözümdür.

Tasarım Desenlerinin Kullanım Alanları

Tasarım Deseni (Design Patterns), doğrudan koda dönüştürülebilecek tamamlanmış bir tasarım değildir. Birçok farklı durumda kullanılabilecek bir problemin nasıl çözüleceğine ilişkin bir açıklama veya şablondur.

Tasarım Modelleri, test edilmiş, kanıtlanmış geliştirme paradigmaları sağlayarak geliştirme sürecini hızlandırabilir. Etkili yazılım tasarımı, uygulamanın ilerleyen aşamalarına kadar görünür hale gelmeyecek sorunların dikkate alınmasını gerektirir.

Tasarım desenlerinin yeniden kullanılması, büyük sorunlara neden olabilecek ince sorunların önlenmesine yardımcı olur ve kalıplara aşina olan kodlayıcılar ve mimarlar için kodun okunabilirliğini artırır. Çoğu zaman insanlar yalnızca belirli yazılım tasarım tekniklerinin belirli sorunlara nasıl uygulanacağını anlarlar.

Bu tekniklerin daha geniş bir problem yelpazesine uygulanması zordur. Tasarım kalıpları, belirli bir soruna bağlı ayrıntıları gerektirmeyen bir formatta belgelenen genel çözümler sunar. Ayrıca kalıplar, geliştiricilerin yazılım etkileşimleri için iyi bilinen, iyi anlaşılan adlar kullanarak iletişim kurmasına olanak tanır. Yaygın tasarım modelleri zaman içinde geliştirilebilir ve bu da onları geçici tasarımlardan daha sağlam hale getirir.

Yaratıcı Tasarım Desenleri

Bu tasarım desenlerinin tamamı sınıf örneklemesiyle ilgilidir. Bu model ayrıca sınıf oluşturma kalıplarına ve nesne yaratma kalıplarına bölünebilir. Sınıf oluşturma kalıpları örnekleme sürecinde kalıtımı etkili bir şekilde kullanırken, nesne oluşturma kalıpları işin yapılması için delegasyonu etkili bir şekilde kullanır.

  • Soyut Fabrika
    Birkaç sınıf ailesinin bir örneğini oluşturur
  • Oluşturucu
    Nesne yapımını temsilinden ayırır
  • Fabrika Yöntemi
    Çeşitli türetilmiş sınıfların bir örneğini oluşturur
  • Nesne Havuzu
    Artık kullanılmayan nesneleri geri dönüştürerek pahalı kaynak edinimi ve serbest bırakılmasından kaçının
  • Prototip
    Kopyalanacak veya klonlanacak, tamamen başlatılmış bir örnek
  • Singleton
    Yalnızca tek bir örneğinin bulunabileceği bir sınıf

Yapısal Tasarım Desenleri

Bu tasarım desenlerinin tamamı Sınıf ve Nesne kompozisyonuyla ilgilidir. Yapısal sınıf oluşturma kalıpları, arayüzleri oluşturmak için kalıtımı kullanır. Yapısal nesne desenleri, yeni işlevsellik elde etmek için nesneleri oluşturmanın yollarını tanımlar.

  • Köprü
    Bir nesnenin arayüzünü uygulamasından ayırır
  • Bileşik
    Basit ve bileşik nesnelerden oluşan bir ağaç yapısı
  • Dekoratör
    Nesnelere dinamik olarak sorumluluklar ekleyin
  • Cephe
    Bir alt sistemin tamamını temsil eden tek bir sınıf
  • Flyweight
    Verimli paylaşım için kullanılan ince taneli bir örnek
  • Özel Sınıf Verileri
    Erişimci/mutatör erişimini kısıtlar
  • Proxy
    Başka bir nesneyi temsil eden bir nesne

Davranışsal Tasarım Kalıpları

Bu tasarım kalıplarının tamamı Class’ın nesnelerin iletişimiyle ilgilidir. Davranış kalıpları, özellikle nesneler arasındaki iletişimle ilgili olan kalıplardır.

  • Sorumluluk zinciri
    Bir nesne zinciri arasında bir isteği iletmenin bir yolu
  • Komut
    Bir komut isteğini nesne olarak kapsülleme
  • Tercüman
    Bir programa dil öğelerini dahil etmenin bir yolu
  • Yineleyici
    Bir koleksiyonun öğelerine sırayla erişme
  • Arabulucu
    Sınıflar arasındaki basitleştirilmiş iletişimi tanımlar
  • Memento
    Bir nesnenin iç durumunu yakalayın ve geri yükleyin
  • Boş Nesne
    Bir nesnenin varsayılan değeri olarak hareket edecek şekilde tasarlanmıştır
  • Gözlemci
    Bir dizi sınıftaki değişikliği bildirmenin bir yolu
  • Durum
    Bir nesnenin durumu değiştiğinde davranışını değiştirin
  • Strateji
    Bir sınıf içindeki bir algoritmayı kapsüller
  • Şablon yöntemi
    Bir algoritmanın tam adımlarını bir alt sınıfa erteleyin
  • Ziyaretçi
    Bir sınıfa değişiklik yapmadan yeni bir işlem tanımlar

“Diğer Soyutlamalardan Önemli Bir Farkı Yoktur”

Bazı yazarlar tasarım kalıplarının diğer soyutlama biçimlerinden önemli ölçüde farklı olmadığını ve programlama alanındaki mevcut olguları tanımlamak için (mimarlık camiasından ödünç alınan) yeni terminolojinin kullanılmasının gereksiz olduğunu iddia etmektedir.

Model-Görünüm-Denetleyici paradigması, “tasarım desenleri” kavramından birkaç yıl öncesine dayanan bir “örüntü” örneği olarak lanse ediliyor.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu