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.