Co to jest łańcuch odpowiedzialności?
Łańcuch odpowiedzialności (KR) obejmuje proces wskazywania działań i obowiązków każdego podmiotu we wzorcu projektowania obiektowego. Istnieją dwa podstawowe elementy w projektowaniu obiektowym; obiekty poleceń i obiekty przetwarzania. Obiekty poleceń generują polecenia do obiektów przetwarzania, a obiekty przetwarzania wybierają spośród poleceń, które mogą obsłużyć i przekazują resztę pozostałym w łańcuchu. Jest to podstawowa zasada projektowania obiektowego, a projektowanie jest znacznie bardziej elastyczne, takie jak nowa obudowa obiektów w dowolnym miejscu we wzorcu projektowym łańcucha odpowiedzialności.
Zaletą projektowania obiektowego jest to, że komunikacja nie ogranicza się do nadawcy i odbiorcy, ponieważ istnieje wiele obiektów do obsługi polecenia nadawcy. Istnieje szereg różnych obiektów, które ustawiają się w szeregu, aby obsłużyć polecenia, a jeśli nie można go obsłużyć, może przekazać go do następnego w łańcuchu. Łańcuch odpowiedzialności trwa, dopóki jeden z obiektów nie przyjmie polecenia.
Łańcuch odpowiedzialności musi być bardziej elastyczny i wspierać dodawanie nowych podmiotów obsługi w łańcuchu. Ponieważ każdy moduł obsługi nie jest w stanie wykonać każdego zadania, musi istnieć grupa modułów obsługi, które mogą pracować wspólnie. Łańcuch odpowiedzialności może mieć pewne wady, ponieważ niektóre polecenia pozostają nierozwiązane, nawet na końcu łańcucha. Aby rozwiązać ten problem, jednym z rozwiązań jest zaimplementowanie wszystkich procedur obsługi wszystkich możliwych żądań.
Mogą występować pewne problemy związane z zerwanymi ogniwami w systemie odpowiedzialności. Jeśli programista zapomni połączyć polecenia, żądanie może zostać utracone. Reprezentacja żądania jest znacząca, ponieważ jest stosowana we wszystkich elementach łańcucha odpowiedzialności. Kolejną wadą, która może być w projekcie KR-u, jest to, że z powodu pewnych problemów w konkretnym module obsługi niektóre żądania mogą nie zostać rozwiązane na końcu łańcucha. Ale w sumie łańcuch odpowiedzialności jest dobrym systemem do wdrożenia, jeśli został starannie zaprojektowany, biorąc pod uwagę wszystkie powiązane aspekty.