Design Patterns
Published in

Design Patterns

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.

Servlet gelen Request ilerleyişi

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.

COR Yapısı

Yapısı

Ortak bir Handler sınıfından türüyeren nesneler kendisi gelen context işleyerek bir sonraki handler geçirir.

CORS Class ve Sequence Diagram

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store