Design Pattern Nedir ?

Sosyal medyada paylaşın

Desenler, Christopher Alexander tarafından 1977 gibi erken bir tarihte bir mimari konsept olarak ortaya çıktı. Design Patterns: Elements of Reusable Object-Oriented Software kitabının 1994 yılında “Gang of Four” (Gamma ve diğerleri) tarafından sık sık “GoF” olarak kısaltılan tarafından yayınlanmasından sonra tasarım desenleri bilgisayar biliminde popülerlik kazandı. Günümüzde 250+ tasarım deseni bulunmaktadır fakat bu kitapta 23 adet en işlevsel ve kitlelerce kabul gören tasarım kalıpları konu alınmıştır.

Bir tasarım deseni (design pattern), tekrar eden sorunlara yönelik genel çözüm yöntemlerini tanımlayan, test edilmiş ve yaygın olarak kabul görmüş en optimum yaklaşımı ifade eder. Tasarım desenleri, yazılım geliştirme sürecinde ortaya çıkan yaygın sorunları ele alır ve bu sorunları çözmek için kullanılan en iyi uygulamaları sağlar. Yeni yazılmış kodlar genellikle, tespit edilmesi zaman alan ve bazen ileride büyük sorunlara yol açabilen gizli ince sorunlar içerebilir. Tasarım kalıplarını yeniden kullanmak, bu tür ince sorunları önlemeye yardımcı olur ve ayrıca kalıplara aşina olan kodlayıcılar ve mimarlar için kod okunabilirliğini geliştirir. Bu desenler, belirli bir problemi çözmek için test edilmiş çözümleri sunar ve yazılım geliştiricilerine tekrar tekrar icat etmek yerine bu çözümleri kullanma imkanı verir. Birçok tasarım deseni vardır ve her biri farklı durumlar için optimize edilmiştir. Örnek olarak, Singleton, Factory, Observer, Decorator, Strategy ve MVC (Model-View-Controller) gibi yaygın tasarım desenleri bulunmaktadır. Tasarım desenleri, yazılım geliştiricilerin daha anlaşılır, esnek ve yeniden kullanılabilir kod oluşturmasına yardımcı olur. Ayrıca, tasarım desenleri, bir projede çalışan geliştiriciler arasında ortak bir dil ve anlayış sağlar, böylece ekip üyeleri daha iyi bir işbirliği yapabilir. Tasarım deseni herhangi bir dile bağımlı değildir, ilgili tasarım deseni tüm dillerde uygulanabilir ve kullanılabilir.

Tasarım kalıpları çözdükleri problemlerin başlığına göre 3 kategoriye ayrılırlar, bunlar;

  • Creational Patterns (Yaratımsal Kalıplar): Nesnelerin oluşturulmasında ve yönetilmesinde kullanılan bir desendir. Bu program akışında hangi nesneye ihtiyaç varsa onu oluşturmada esneklik ve kolaylık sağlar.
  • Structural Patterns (Yapısal Kalıplar): Birden fazla sınıfın bir işi yerine getirirken nasıl davranacağını belirlemek için kullanılan desenlerdir. 
  • Behavioral Patterns (Davranışsal Kalıplar): Nesnelerin birbirleri ile ilişkisini düzenleyen desendir.

Creational Patterns (Yaratımsal Kalıplar)

  • Singleton Pattern
  • Factory Pattern
  • Abstract Factory Pattern
  • Builder Pattern
  • Prototype Pattern

Structural Patterns (Yapısal Kalıplar)

  • Adapter Pattern
  • Bridge Pattern
  • Filter Pattern
  • Composite Pattern
  • Decorator Pattern
  • Facade Pattern
  • Flyweight Pattern
  • Proxy Pattern

Behavioral Patterns (Davranışsal Kalıplar)

  • Command Pattern
  • Interpreter Pattern
  • Iterator Pattern
  • Mediator Pattern
  • Memento Pattern
  • Observer Pattern
  • Null Object Pattern
  • Strategy Pattern
  • State Pattern
  • Visitor Pattern

İlerleyen zamanlarda bu patternlerden bazıları için tekrar yazı yazacağım. O yazılarda görüşmek üzere…