TASARIM ÖRÜNTÜLERİ
Chain Of Responsibility
Behavioral Patterns bir örneği olan Chain of Responsibility, istemcinin bir isteği var ve bu isteğin sıra ile işlemci sınıflar tarafından işlenmesi ve bir sonraki işlemciye geçirilmesi gerekiyor.
Bilgi Notu: Diğer tüm Tasarım Örüntüleri yazıma bu linkten ulaşabilirsiniz.
Hangi Durumda
İstemcinin isteği var ve bu isteğin hedefe ulaşıncaya kadar üzerinde bir takım işlemler yapılması gerekiyor , bir takım processing sınıflar tarafından bu isteğin işlenmesi ve bir sonraki işlemciye geçirilmesi gerektiği durumlarda kullanılmalıdır.
Servlet Örneği
Servlet çağrımında Filtreler bu duruma güzel bir örnek
- Authentication Filter (Kimlik Doğrulama)
- Logging Filter (Loglama)
- Data Compression Filter (Veri Sıkıştırma)
- Encryption Filter
Bu örüntüde processing elementler sadece kendilerinden bir sonraki processing element bilirler ve kendileri ile ilgili işlemi gerçekleştirdikten sonra bir sonraki processing element ilgili request nesnesini geçirirler.
try/catch Örneği
java’daki Exception Handling mekanizmasıda bir Chain Of Responsibility örneğidir. try/catch bloğunda işlenemeyen bir exception kendisinden bir önceki çağrım yapan fonksiyona o da kendisinden bir önceki çağrım yapan fonksiyona Exception throw edebilir. Bu sayede Exception ele alma sorumluluğu olan fonksiyonda işlenmiş olur. Aşağıdaki gösterimde Handler kendisinden sonra gelen Handler tutuyor, kendisi Exception handle edemez ise bir sonraki bir üst fonksiyona hatayı geçiriyor.
Yapısı
Ortak bir Handler sınıfından türüyeren nesneler kendisi gelen context işleyerek bir sonraki handler geçirir.
Okumaya Devam Et 😃
Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.