En İyi Sorular
Zaman Çizelgesi
Sohbet
Bakış Açıları

Tasarım örüntüleri

yazılımda yaygın olarak karşılaşılan problemlere etkin ve yeniden kullanılabilir çözümler Vikipedi'den, özgür ansiklopediden

Remove ads

Tasarım desenleri, yazılım tasarımında sık karşılaşılan sorunlara kanıtlanmış çözümler sunan, genel ve yeniden kullanılabilir tasarım şablonlarıdır. Nesne yönelimli programlama başta olmak üzere yazılım geliştirme süreçlerinde kullanılan bu desenler, esnek, bakımı kolay ve ölçeklenebilir yazılımlar oluşturmaya yardımcı olur.

Tarihçe

Tasarım desenleri kavramı ilk olarak mimar Christopher Alexander tarafından 1977'de yayınlanan A Pattern Language: Towns, Buildings, Construction adlı kitapta ortaya atılmıştır. Alexander, mimaride karşılaşılan ortak problemlere standart çözümler önermiştir.[1]

Bu fikir 1987'deki OOPSLA konferansında Ward Cunningham ve Kent Beck tarafından yazılım alanına uyarlandı.[2] 1994'te ise Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides (Dörtlü Çete veya GoF olarak bilinir) Design Patterns: Elements of Reusable Object-Oriented Software kitabını yayınlayarak 23 temel yazılım tasarım desenini tanımladılar.[3]

Remove ads

Sınıflandırma

GoF tarafından tanımlanan 23 temel tasarım deseni üç ana kategoride sınıflandırılır:[3]

Oluşturucu (Creational) Desenler

Nesne oluşturma mekanizmalarını optimize eder ve nesnelerin oluşturulma süreçlerini esnek hale getirir. Başlıca desenler:

  • Abstract factory (Soyut fabrika)
  • Builder (İnşaatçı)
  • Factory method (Fabrika metodu)
  • Prototype (Prototip)
  • Singleton (Tekil)

Yapısal (Structural) Desenler

Nesnelerin ve sınıfların daha büyük yapılar oluşturmak üzere nasıl birleştirileceğini tanımlar. Başlıca desenler:

  • Adapter (Adaptör)
  • Bridge (Köprü)
  • Composite (Bileşik)
  • Decorator (Dekoratör)
  • Facade (Cephe)
  • Flyweight (Sinek ağırlığı)
  • Proxy (Vekil)

Davranışsal (Behavioral) Desenler

Nesneler arasındaki iletişimi ve sorumluluk dağılımını düzenler. Başlıca desenler:

  • Chain of responsibility (Sorumluluk zinciri)
  • Command (Komut)
  • Interpreter (Yorumlayıcı)
  • Iterator (Yineleyici)
  • Mediator (Arabulucu)
  • Memento (Anı)
  • Observer (Gözlemci)
  • State (Durum)
  • Strategy (Strateji)
  • Template method (Şablon metodu)
  • Visitor (Ziyaretçi)
Remove ads

Önemli Tasarım Desenleri

Singleton Deseni

Singleton deseni, bir sınıftan yalnızca bir örneğin oluşturulmasını garanti eder ve bu örneğe global bir erişim noktası sağlar. Bu desen özellikle veritabanı bağlantıları, logger'lar ve yapılandırma ayarları gibi durumlarda kullanılır.[4]

Observer Deseni

Observer deseni, bir nesnedeki değişikliklerin bağımlı nesnelere otomatik olarak bildirilmesini sağlayan bir yayın-abone mekanizmasıdır. Model-View-Controller (MVC) mimarisinde yaygın olarak kullanılır.[5]

Factory Method Deseni

Factory method deseni, nesne oluşturma işlemini alt sınıflara devrederek istemci kodunu somut sınıflardan ayırır. Bu desen, genişletilebilir ve bakımı kolay kod yazmayı sağlar.[3]

Etkileri ve Kullanım Alanları

Tasarım desenleri modern yazılım geliştirmede önemli bir rol oynar:

  • Kodun yeniden kullanılabilirliğini artırır
  • Yazılım mimarisini standartlaştırır
  • Geliştiriciler arasındaki iletişimi kolaylaştırır
  • Bakım maliyetlerini düşürür
  • Ölçeklenebilir sistemler tasarlamaya yardımcı olur

Özellikle Java, C++ ve C# gibi nesne yönelimli dillerde yaygın olarak kullanılan tasarım desenleri, Spring Framework, .NET Framework ve Angular gibi popüler framework'lerin temelini oluşturur.

Remove ads

Eleştiriler

Tasarım desenleri bazı çevrelerce eleştirilmektedir:

  • Bazı desenlerin programlama dillerindeki eksiklikleri telafi etmek için kullanıldığı iddia edilir. Örneğin, Visitor deseni çift dağıtım (double dispatch) eksikliğini gidermek için kullanılır.[6]
  • Aşırı desen kullanımının kod karmaşıklığını artırabileceği belirtilir.

Ayrıca bakınız

Kaynakça

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads