Tasarım Deseni Nedir?
İngilizce: Design Pattern
Yayın: · Son güncelleme:
Tasarım Deseni Nedir? Kısaca
Tasarım deseni (design pattern), yazılım geliştirmede sık karşılaşılan tasarım sorunlarına karşı denenmiş, yeniden kullanılabilir çözüm şablonudur. Hazır kod değil, bir sorunun nasıl çözüleceğini anlatan genel bir yapıdır.

Tasarım deseni nedir?
Tasarım deseni, yazılımcıların yıllar içinde tekrar tekrar karşılaştığı sorunlara bulunmuş ortak çözümlerin adlandırılmış hâlidir. Kopyalanıp yapıştırılacak bir kod parçası değildir. Daha çok bir tarif gibidir: hangi durumda, hangi yapıyla, hangi sonuca ulaşılacağını anlatır.
Kavram 1994'te yayımlanan "Design Patterns" kitabıyla yaygınlaştı. Kitabın dört yazarı "Gang of Four" (GoF) olarak anılır ve kitapta 23 desen tanımlanır.
Üç ana grup
GoF desenleri üç gruba ayrılır:
| Grup | Ne ile ilgilenir? | Örnek |
|---|---|---|
| Yaratımsal | Nesnelerin nasıl oluşturulacağı | Singleton, Factory |
| Yapısal | Nesnelerin nasıl birleştirileceği | Adapter, Decorator |
| Davranışsal | Nesnelerin nasıl iletişim kuracağı | Observer, Strategy |
Bir örnekle bakalım. Bir e-ticaret sitesi kredi kartı, havale ve kapıda ödeme seçenekleri sunuyor. Her yöntemi uzun bir if-else zinciriyle yönetmek yerine Strategy deseni kullanılabilir. Her ödeme yöntemi aynı arayüze uyan ayrı bir sınıf olur.
Böylece kod düzenli kalır. Yeni bir yöntem eklemek ise mevcut koda dokunmadan yeni bir sınıf yazmak kadar kolaylaşır.
Ne zaman kullanılmalı?
Desenler ortak bir dil sağlar. Ekipte "burada Observer kullanalım" demek, uzun bir açıklamanın yerini tutar.
Ancak her soruna desen uygulamak gereksiz karmaşıklık doğurur. Önce sorunu net tanımlayın, desen o soruna doğal olarak uyuyorsa kullanın. Öğrenmeye başlarken Singleton, Factory, Strategy ve Observer gibi sık görülen desenlerle başlamak, kod okurken onları tanımanızı kolaylaştırır.
Sıkça Sorulan Sorular
Tasarım desenlerini öğrenmek için hangi dil gerekir?
Desenler dilden bağımsızdır. Örnekler genelde Java veya C# gibi nesne yönelimli dillerle anlatılır, ancak aynı fikirler Python, JavaScript ve diğer dillerde de uygulanır.
MVC bir tasarım deseni mi?
MVC genelde mimari desen olarak sınıflandırılır. Tek bir sınıf düzeyinden çok uygulamanın genel yapısını düzenler, ancak içinde Observer gibi tasarım desenlerinden yararlanır.