Tasarım Deseni - Genel Bakış
Tasarım kalıpları, deneyimli nesne yönelimli yazılım geliştiricileri tarafından kullanılan en iyi uygulamaları temsil eder. Tasarım kalıpları, yazılım geliştiricilerin yazılım geliştirme sırasında karşılaştıkları genel sorunlara yönelik çözümlerdir. Bu çözümler, çok sayıda yazılım geliştiricisi tarafından oldukça uzun bir süre boyunca deneme yanılma yoluyla elde edildi.
Gang of Four (GOF) nedir?
1994'te dört yazar Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides başlıklı bir kitap yayınladılar. Design Patterns - Elements of Reusable Object-Oriented Software Yazılım geliştirmede Tasarım Modeli kavramını başlatmıştır.
Bu yazarlar toplu olarak şu şekilde bilinir: Gang of Four (GOF). Bu yazarlara göre tasarım kalıpları öncelikle aşağıdaki nesne yönelimli tasarım ilkelerine dayanmaktadır.
Bir arayüze programlayın, bir uygulamaya değil
Nesne kompozisyonunu mirasa tercih edin
Tasarım Deseninin Kullanımı
Tasarım Modellerinin yazılım geliştirmede iki ana kullanımı vardır.
Geliştiriciler için ortak platform
Tasarım modelleri standart bir terminoloji sağlar ve belirli bir senaryoya özgüdür. Örneğin, tekli bir tasarım modeli, tek bir nesnenin kullanımını ifade eder, böylece tek tasarım modeline aşina olan tüm geliştiriciler, tek bir nesneyi kullanır ve birbirlerine programın tek bir model izlediğini söyleyebilirler.
En İyi Uygulamalar
Tasarım kalıpları uzun bir süre boyunca gelişmiştir ve yazılım geliştirme sırasında karşılaşılan belirli sorunlara en iyi çözümleri sağlarlar. Bu kalıpları öğrenmek, deneyimsiz geliştiricilerin yazılım tasarımını kolay ve hızlı bir şekilde öğrenmesine yardımcı olur.
Tasarım Desen Türleri
Tasarım deseni referans kitabına göre Design Patterns - Elements of Reusable Object-Oriented SoftwareYaratılış, Yapısal ve Davranışsal modeller olmak üzere üç kategoride sınıflandırılabilecek 23 tasarım deseni vardır. Ayrıca başka bir tasarım modeli kategorisini de tartışacağız: J2EE tasarım modelleri.
SN | Desen ve Açıklama |
---|---|
1 | Creational Patterns Bu tasarım desenleri, nesneleri doğrudan yeni operatör kullanarak somutlaştırmak yerine, oluşturma mantığını gizlerken nesneler oluşturmak için bir yol sağlar. Bu, programa, belirli bir kullanım durumu için hangi nesnelerin oluşturulması gerektiğine karar vermede daha fazla esneklik sağlar. |
2 | Structural Patterns Bu tasarım modelleri sınıf ve nesne kompozisyonu ile ilgilidir. Kalıtım kavramı, arayüzler oluşturmak ve yeni işlevler elde etmek için nesneler oluşturmanın yollarını tanımlamak için kullanılır. |
3 | Behavioral Patterns Bu tasarım kalıpları, özellikle nesneler arasındaki iletişimle ilgilidir. |
4 | J2EE Patterns Bu tasarım modelleri, özellikle sunum katmanı ile ilgilidir. Bu modeller Sun Java Center tarafından tanımlanır. |