Tasarım Kalıpları (Tasmim Kalıpları, Design Patterns)
Yazan : Şadi Evren ŞEKER
Yazılım mühendisliğinde sıkça kullanılan tasarım kalıplarının bir kütüphane haline getirilmesi ve bu kütüphanenin ileriki projelerde kullanılmasıyla proje gelitşrime sürelerinin kısaltılması hedeflenmektedir. Bu kütüphane (design patterns library) genelde farklı yapılar içerebilmesine karşılık aşağıdaki gruplarda toparlanabilir:
- Web tasarım kalıpları (web design patterns)
- UML tasarım kalıpları (UML Design patterns)
- Grafik arayüzü tasarım kalıpları (GUI design patterns)
Web tasarımı ile ilgili pek çok kalıp kütüphanesi internet üzerinden ulaşılabilir durumdadır. Özellikle AJAX teknolojisinin hızla gelişmesi sonrasında internet üzerinde yayın yapan pek çok gelişmiş kurum (yahoo, google gibi) kendi kütüphanelerini geliştirerek internet kullanıcılarına açmışlardır.
UML tasarım kalıplarının amacı ise özellikle nesne yönelimli programlama yapılan ortamlarda belirli şablonların saklanarak ileriki projelerin içerisinde kullanılmasıdır. Bu amaçla çeşitli sınıflandırmalara gidilmiştir. Örneğin yapısal tasarımların yer aldığı ve daha çok bileşenlerin konumlandırılmalarını belirleyen mimari tasarım kütüphanesi (architectural design library) veya yazılım tasarımında kullanılan sınıf diyagramlarının (class diagrams) içerildiği GOF bunlardandır.
Burada GOF’tan bahsetmekte yarar var. GOF, gango of four (dört gangster diye çevrilebilir)’un kısaltmasıdır. Kısaca yazılım mühendisliği konusunda meşhur kitaplardan “Design Patterns: Elements of Reusable Object-Oriented Software (ISBN 0-201-63361-2)” kitabının yazarı olan 4 kişiye (Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides) ithafen bu isim verilmiştir. Bu kitapta da anlatılan ve bu kişilerin geliştirdikleri tasarım yöntemine göre 3 farklı grup tasarım sınıfından bahsedilebilir, bu sınıfları ve geliştirme aşamalarını içeren tablo aşağıda verilmiştir:
| Creational (Oluşturucu) | Structural (Yapısal) | Behavioral (Davranışsal) | |
| Interface (arayüz) | AdapterBridge
Composite Facade |
||
| Responsibility (Sorumluluk) | Singleton | FlyweightProxy | Chain of ResponsibilityMediator
Observer |
| Construction (oluşum) | Abstract FactoryBuilder
Factory Model Prototype |
Memento | |
| Operation (İşlem) | CommandInterpreter
State Strategy Template Method |
||
| Extension (Uzatma) | Decorator | IteratorVisitor |
Yukarıdaki tabloda GOF içerisinde yer alan 3 önemli geliştirme tasarımına göre sınıflandırma yapılmıştır.
Ayrıca yukarıda bulunmayan ve muvazi fiiller (eşzamanlı işler, concurrent processes) konusunu içeren tasarım kalıpları da bulumaktadır.
« RMI (Remote Method Invocation, Uzaktan Metod Çağırma) | Şelale Modeli ( Waterfall Model ) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Tasarım Kalıpları (Tasmim Kalıpları, Design Patterns)' isimli yazı 29 Nov 2008 tarihinde, saat: 06:58 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 1019 defa okunmuştur.
Benzer yazıları Bilgisayar Kavramları, Nesne Yönelimli Programlama, Yazılım Mühendisliği (Software Engineering) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Sıralama işleminiz poligonu...
- Şadi Evren ŞEKER: bahsettiğiniz sıralama algoritması...
- Abdurrahman ulusoy: merhaba hocam. gelişigüzel...
- Oguz Okutan: Merhaba hocam.. Fonksiyonlarda degere göre...
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
Yakın Yazılar
Tasarım Kalıpları (Tasmim Kalıpları, Design Patterns)
Fabrika Metotları (Factory Methods)
Şelale Modeli ( Waterfall Model )
Tekrarlı ve Arttırımlı Geliştirme (Iterative and Incremental Development)
Menezes-Qu-Vanstone Şifrelemesi (Cipher)
Düzenli İfadelerde Pompalama Önsavı (Pumping Lemma for Regular Expressions)
ERD ( Unsur İlişki Çizimi, Entity Relationship Diagram )
Tembel Programlama (Lazy Programming)
Pompalama Önsavı (Pumping Lemma)
Eigenvalue (Özdeğer) Eigen vector (Öz yöney) Eigen Space (Öz Uzay)
Çıkarıcı Devre (Subtractor Circuit)
Döngüsel Çarprazlama (Cycle Crossover)
Seçim İşlemi (Selection Operator)
Bağlantılar