Tasarım Kalıplarını Neden Kullanmalı ?

Duygu Demirbaş
Kodcular
Published in
2 min readJun 22, 2019

Tasarım Kalıpları Nedir ?

Yazılım geliştiriciler olarak günlük hayatımızda bir çok problem çözeriz. Ve bu problemlerden aslında bir çok şey öğreniriz. Bu problemleri çözerken her ne kadar farklı projeler geliştirsek de karşılaştığımız problemler ve kullandığımız çözüm yöntemleri birbirine benzer. Tasarım kalıpları tam da bu noktada hayatımıza giriyor. Benzer problemlere bulunan benzer çözümler günden güne optimize edilmiş ve kendini kanıtlamış yöntemler (best practice) haline gelmiştir.

1994 yılında çıkan Design Patterns: Elements of Reusable Object-Oriented Software kitabı ile Tasarım kalıpları bilgisayar bilimleri dünyasında yerini almıştır. Dörtlü Çete ( Gang of Four (GOF) ) olarak bilinen Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides’in yayınladıkları bu kitap yazılım dünyasındaki genel problemlere bulunan optimum çözümler ile oldukça popüler olmuştur.

Tasarım kalıpları dilden, platformdan, algoritmalardan bağımsız olarak yazılım tasarımı ile ilgilidir.

Tasarım kalıplarının çözdüğü problemlere birkaç örnek:

  • Karmaşık nesneleri nasıl yaratırız ?
  • Nesnelere erişimi nasıl kontrol ederiz ?
  • Bir sınıftan sadece ve sadece bir nesne yaratarak kopyalanmasının önüne nasıl geçeriz?

Neden Kullanmalı ?

Deneyimli yazılımcılar tarafından yıllar boyunca deneme yanılma yöntemi ile bulunmuş ve faydası kanıtlanmış çözümler ortaya koyması sebebi ile projelerimizde tasarım kalıplarını kullanarak bir çok problemi elimine edebiliriz. Tekerleği baştan icat etmemek için tasarım desenlerini öğrenmekte ve projelerimizi yazarken bu desenleri de göz önünde bulundurmakta fayda var. Kodun tekrar kullanılabilir, esnek, soyut, daha okunabilir ve anlaşılabilir olmasını sağlarlar. Aynı zamanda yazılım geliştiricilerin soyut düşünme yeteneklerini de geliştirir.

Tasarım Kalıbı Türleri

  1. Creational Patterns = Nesnelerin yaratılması ile ilgili yol gösteren kalıplardır: Factory Method, Abstact Factory, Builder, Singleton, Prototype

2. Structural Patterns = Nesneler arasındaki yapısal ilişkiler ile ilgili kalıplardır: Adapter, Facade, Decorator, Bridge, Composite, Proxy, Flyweight

3. Behavioral Patterns = Nesnelerin çalışma zamanı davranışları ile ilgili kalıplardır: Command, Strategy, Observer, State, Template, Iterator, Interpreter, Memento, Chain of Responsibility, Mediator, Visitor

--

--