Bu projede Design Patterns konusu ele alınmış ve en çok kullanıldığı değerlendirilen 6 pattern örneği uygulaması yapılmıştır. Aşağıda özet olarak Design Pattern'lara değinilmiştir. Standart olarak kabul edilmiş 23 disayn patternların ayrıntıları için GitBook sayfamı ziyaret edebilirisiniz. GitBook/RıdvanORUN
Design patterns; bir yazılım projesinden sıklıkla karşılaştığımız benzer sorunlar üzerinden yola çıkarak Code Optimization'ı en iyi şekilde yapabilmemizi sağlayan yapılardır. Bir design pattern, doğrudan koda dönüştürülebilen bitmiş bir tasarım değildir.
Desing Patterns 3 ana başlık altında incelenir;
Nesnelerin nasıl yaratılacağı hakkında öneriler sunar. 5 temel uygulama biçimi vardır.3 örnek uygulama yapılmıştır.
1.1.Singleton Pattern Uygulamanın yaşam süresince bir nesnenin bir kez oluşturulmasını sağlar. Nesnenin sadece bir defa oluşturulmasını öngören bir mekanizma kurulmak istenildiğinde etkin bir biçimde kullanılabilen bir tasarım desenidir.
1.2.Builder Pattern Birden fazla parçadan oluşan nesnelerin üretilmesinden sorumludur. Tek ara yüz kullanarak karmaşık bir nesne grubundan gerektiğince parça yaratılmasını sağlar.
1.3.Factory Pattern Aynı arayüzü kullanan nesnelerin üretiminden sorumludur. Nesnenin nasıl yaratılacağını kalıtım yoluyla alt sınıflara bırakıp nesne yaratımı için tek ara yüz kullanarak, ara yüzle nesne yaratım işlevlerini temelde birbirinden ayırmaya yarayan yaratımsal tasarım kalıbıdır.
Sınıflar arasındaki ilişkileri belirleme önerileri sunar, Nasıl türetilmeli, hangi nesneleri içermeli, sınıflar birbirlerini nasıl bağlı olmalı gibi soruların cevaplarını yanıtlar.7 temel uygulama biçimi vardır. 1 örnek uygulaması yapılmıştır.
2.1.Decorator Pattern Bir yapıya dinamik olarak yeni metotlar eklenmesini düzenler. Dekoratör kalıp uygulamada runtime esnasında bir sınıfın işlevlenebilirliğinin genişletilmesini veya başka bir deyişle yeniden dekore edilebilmesini mümkün kılar. Bunu yaparken dekoratör kalıpları orjinal sınıfları kapsayan yeni dekorator sınıfları üreterek yaparlar.
Soruna göre nesneler arası ortak haberleşmeyi en iyi şekilde kurmamıza öneriler sunar. 11 temel uygulama biçimi vardır. 2 örnek açıklaması yapılmıştır. 3.1.Chain Of REsponsibility Pattern Sorumluluk zinciri kalıbı sisteme gönderilen bir isteğin (komut) hangi nesne tarafından cevaplanması gerektiğini bilmediğimiz durumlarda ya da isteği yapan nesne ve servis sağlayan nesne arasında sıkı bir bağ oluşmasını engellememiz gerektiğinde kullanılmaktadır.
3.2.Oberver Pattern Uygulama içerisinde bir nesnede meydana gelen değişikliklerden haberdar olup üzerinde belli metotları çalıştırıp değişlikler yapmak isteyen diğer nesneler bulunabilmektedir.