Design Patterns (Tasarım Desenleri)

Design Patterns Çağrı ŞİŞMAN 13.12.2015

Design Patterns(tasarım desenleri), yazılım geliştirme esnasında yaşanılan çeşitli problemlere çözüm getirebilmek amacıyla geliştirilen yaklaşımları içeren kavramlar bütünüdür.

OOP(Object Oriented Programming) kullanarak geliştiren yazılımlar en nihayetinde birbiriyle ilişkili sınıflar,bu sınıflar ile oluşturulan nesnelerden biraraya gelir. Bu sınıfların ve nesnelerin arasındaki ilişki ve birbirlerine olan bağımlılıkları  çeşitli durumlardan ötürü önem taşır.

  1. Uygulamanız gelişmeye ve değişmeye  ne kadar açık?
  2. Uygulamanızı yayına aldınız ve bir süre sonra yeni bir isteğe ihtiyaç var. Bu konuda nasıl bir reaksiyon göstereceksiniz?
  3. Kodunuz yeniden kullanılabilir mi?  

Yukarıdaki soruların yanında iş kod yazmaya geldiğinde de birtakım önemli noktalar var.

  • Acaba bir sınıfı gereksiz bir şekilde türetiyor olabilir miyiz?
  • If-else blokları arasında neden kayboluyoruz?
  • Farklı bir strateji izlememiz gerekiyorsa, neden bu kadar fazla yerde değişiklik gerçekleştiriyoruz?

Tasarım desenleri nesne ve sınıfların oluşturulması ve yaratılması, bu nesnelerin birarada kullanılabilmesi için çözüm önerilerini içinde barındırır. Bu öneriler özelleştirilebilir kalıplardır ve temel olarak 3 gruba ayrılır.

  1. Creational Patterns(Yaratım Desenleri)
  2. Structural Patterns(Yapısal Desenleri)
  3. Behavioral Patterns(Davranış Desenleri)

Creational Patterns(Yaratım Desenleri)

Yeni bir nesne oluşturacağımız zaman bunun ne şekilde olacağına ve bu nesnelerin nasıl biraraya geleceğine ait tasarım desenlerini içinde barındırır.

  • Singleton Pattern(Tek Kopya Deseni)
  • Factory Pattern(Fabrika Deseni)
  • Abstract Factory Pattern(Soyut Fabrika Deseni)
  • Builder Pattern(Yapıcı Desen)
  • Prototype Pattern(Örnek Deseni)

Structural Patterns(Yapısal Desenler)

Sınıflar ve nesnelerin biraraya getirilerek yazılım yapıları kurulmasına ait önerileri barındıran desenlerdir.

  • Composite Pattern(Bileşik Desen)
  • Flyweight Pattern(Hafif Siklet Deseni)
  • Decorator Factory Pattern(Dekoratör Deseni)
  • Facade Pattern(Cephe Deseni)
  • Adapter Pattern(Uyumlandırıcı Desen)
  • Bridge Pattern(Köprü deseni)
  • Proxy Pattern(Temsilci Desen)

Behavioral Patterns(Yapısal Desenler)

Sınıflar ve nesnelerin birarada nasıl davranış sergileyeceğine ilişkin önerileri barındıran nesnelerdir.

  • Mediator Pattern(Arabulucu Desen)
  • Observer Pattern(Gözlemci Desen)
  • Strategy Factory Pattern(Strateji Desen)
  • Memento Pattern(Yadigar Deseni)
  • Iterator Pattern(Yenileyici Desen)
  • Interpretor Pattern(Yorumlayıcı desen)
  • Visitor Pattern(Ziyaretçi Deseni)
  • Chain Of Resposibility Pattern(Sorumluluk Zinciri deseni)
  • Template Method Pattern(Kalıp Metot Desen)