Tasarım Kalıpları

Yazılım projeleri yazılımcılara verilen belirli argümanlar üzerinden oluşan projelerdir. Genellikle proje geliştirmelerinde büyük resim tam anlamıyla görüntülenemediğinden projeler zamanla değişmektedirler.Bu değişimler bazen projelerin yeniden yazılmasını gerektirmektedir. İşte bu kadar köklü değişimlerin önüne geçmek açısından projelerimizi belirli tasarım kalıplarına oturtarak ilerler isek değişimlerin maliyetlerini küçültebiliriz.

Nasıl ortaya çıkmıştır?

Kalıplar(Patterns) Amerikalı mimar Christopher Alexander tarafından 1977 yılında mimari konseptler adıyla ortaya çıkmıştır. 1987 yılında Kent Beck ve Ward Cunningham bu kalıpları kendi deneyimleri ile programlama üzerinde uygulamışlardır ve o yıl düzenlenen OOPSLA konferansında bu çalışmalarını sunmuşlardır. 1994 yılında çıkan Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four) kitabı ile tasarım kalıpları bilgisayar bilimlerinde önemli bir popülerlik kazanmıştır.

Amacı nedir?

Tasarım kalıpları yazılım projelerindeki genel problemleri en iyi yolla çözmeyi planlamaktadır. Deneyimli yazılımcıların object-oriented konusundaki best practice’ lerinden yararlanılarak farklı türlerde kalıplar tasarlanmıştır. Tasarlanan bu kalıplar projelerdeki esnekliği, okunabilirliği ve yazılabilirliği kolaylaştırmaktadırlar.

Kaç adet tasarım kalıbı vardır ve türleri nelerdir?

Gang of Four kitabında da belirtildiği üzere 23 adet tasarım kalıbı bulunmaktadır. Bu tasarım kalıpları çözümlerine göre 3 adet kategoriye ayrılmışlardır. Bunlar creational (yaratımsal) , structural (yapısal) ve behavioral (davranışsal) kalıplardır.

Yaratımsal Kalıplar (Creational Patterns)

Yaratımsal tasarım kalıpları oluşturulacak olan nesnelerin new operatörü kullanmak yerine farklı yollar ile oluşturmayı sağlar. Bu kategorideki tasarım kalıpları aşağıda listelenmiştir.

  • Abstract Factory,
  • Builder,
  • Factory Method,
  • Prototype,
  • Singleton

gibi kalıplar yaratışsal kalıplar sınıfına girmektedir.

Yapısal Tasarımlar (Structural Patterns)

Yapısal tasarım kalıpları sınıflar ile nesneler arasındaki kalıtım ve arayüz bağlantılarının kurulmasını sağlar. Bu kategorideki tasarım kalıpları aşağıda listelenmiştir.

  • Adapter,
  • Bridge,
  • Composite,
  • Decorator,
  • Facade,
  • Flyweight,
  • Proxy

gibi kalıplar yapısal kalıplar sınıfına girmektedir.

Davranışsal Kalıplar (Behavioral Patterns)

Davranışsal tasarım kalıpları, nesneler arasındaki ortak iletişim kalıplarının tanımlanmasını ve gerçekleşmesini sağlar.Bu kategorideki tasarım kalıpları aşağıda listelenmiştir.

  • Chain of responsibility,
  • Command,
  • Interpreter,
  • Iterator,
  • Mediator,
  • Memento,
  • Null Object,
  • Observer,
  • State,
  • Strategy,
  • Template method

gibi kalıplar davranışsal tasarım kalıpları sınıfına girmektedir.

Sonuç olarak projelerimizde esnekliği , okunulabilirliği ve yazabilirliği kolaylaştırmak için tasarım kalıplarını projelerimizde olabildiğince kullanmayı tercih etmeliyiz.

--

--

--

Software Engineer www.arifpehlivan.com

Love podcasts or audiobooks? Learn on the go with our new app.

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
Arif PEHLİVAN

Arif PEHLİVAN

Software Engineer www.arifpehlivan.com

More from Medium

CREATING STRONG METHODS IN OBJECT ORIENTED PROGRAMMING

What is ‘Variables’ ? Understanding the Variables

[Solved] Can’t load Java FXML file from different package

oracle vault in c#, .net, javascript, java , plsql, ruby, typescript & any domain