Nedir Bu Tasarım Desenleri ? (Design Patterns)

Evet arkadaşlar, bugün konumuz en önemli ve en çok fark yaratan konulardan olan tasarım desenleri. Tasarım desenleri konusunda bende kendimi geliştirmeye, öğrenmeye çalışıyorum. Bu yazıda kendimce tasarım desenlerini basit şekilde anlatmaya, daha detaylı araştırmak isteyen arkadaşlar için ise kaynak paylaşmaya çalışacağım.

Öncelikle design patterns yani tasarım desenleri nedir sorusuna cevap vermeye çalışarak başlayalım. Gang of Four topluluğu tarafından yayınlanan tasarım desenleri ,Nesne Yönelimli Programlama da karşılaşılmış tasarım sorunlarına üretilmiş optimum çözümler olarak tanımlanabilir. Tasarım desenleri bizlere daha yönetilebilir ve okunabilir kod yazmak konusunda avantajlar sağlar. Bunun yanında performans ve geliştirilebilirlik konusunda da katkıları vardır. Tasarım desenleri genel olarak 3 başlık altında toplanır.Bunlar;

Creational Patterns-Kurucu Desenler: Nesnelerin oluşturulması ile ilgili patternlerdir.

  • Abstract Factory: İlişkili sınıfların oluşturulmasında kullanılır.
  • Factory Method: Birden fazla türetilmiş sınıfın tek bir örneğinin oluşturulmasında kullanılır.
  • Builder: Nesne üretilirken belirli özellikler vermemizi sağlayan desendir.
  • Prototype: Nesnenin bir prototipten kopyalanarak üretilmesinde kullanılır.
  • Singleton: En çok bilinen tasarım desenlerinden biridir. Programın yaşam döngüsü içerisinde bir nesnenin sadece bir kez oluşturulmasında kullanılır.

Structural Patterns — Yapısal Desenler: Nesnelerin birbiri ile olan ilişkisini konu alır.

  • Adapter: Farklı sınıfların interfacelerini eşleştirir. Farklı yapıdaki nesnelerin kullanımı içindir.
  • Bridge: Nesnelerin uygulama ve arayüzlerini birbirinden ayırır.
  • Composite: Nesnelerin ağaç yapısında basit bir şekilde hiyerarşik olarak iç içe kullanımı içindir.
  • Decorator: Nesnelere dinamik olarak görevler eklemek için kullanılır.
  • Facade: Alt sistemleri tek bir sınıftan yönetmek için kullanılır.
  • Flyweight: Benzer,sık kullanılan nesnelerle veri paylaşımında bellek kullanımını en aza indirmek içindir.
  • Proxy: Başka bir nesneyi temsil eden bir nesnenin yönetimi ile ilgilidir.

Behavioral Patterns — Davranışsal Desenler : Sınıfların bir görevi yerine getirirken nasıl davranacağı ile ilgili desenlerdir.

  • Chain of Responsibility: Bir isteğin belirli sınıflar üzerinden iletilerek ilgili sınıfa ulaştırılması için kullanılır.
  • Command: İşlemlerin nesne halinde kapsüllenmesi için kullanılır.
  • Interpreter: Bir program içerisine dil öğelerinin dahil edilmesi için kullanılır.
  • Iterator: Bir koleksiyonun öğelerine sıralı erişim için kullanılır.
  • Mediator: Nesneler arasında ki iletişimi basitleştirmek için kullanılır.
  • Memento: Nesnenin bazı yada tüm özelliklerini saklayarak daha sonra tekrar bu özellikleri geri yüklemek için kullanılır.
  • Observer: Bir nesnede yapılan değişiklikleri ona bağımlı diğer nesnelere iletmek için kullanılır.
  • State: Bir nesnenin durumuna göre davranışını değiştirmek için kullanılır.
  • Strategy: Bir sınıf içerisinde algoritmaları tutarak, değiştirilebilir hale getirmek için kullanılır.
  • Template Method: Bir algoritmanın iskeletinin tanımlanıp ,adımlarını alt sınıflarda tanımlayarak geçersiz kılınabilir halde kullanmak içindir.
  • Visitor: Sınıfları değiştirmeden yeni işlemler eklemek için kullanılır.

Elimden geldiğince sizlere tasarım desenlerini anlatmaya çalıştım. Bu konuda daha detaylı bilgi için:

http://enesaysan.com/software/tasarim-desenleri-bolum-1/

http://www.dofactory.com/net/design-patterns (İngilizce)

http://www.turkayurkmez.com/kategori/nesne-yonelimli-programlama/tasarim-desenleri/ (Türkçe)

adreslerine bakmanızı tavsiye ederim. Kalın sağlıcakla …

Software Developer at Sosyopix

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store