Czym jest łańcuch odpowiedzialności?

Łańcuch odpowiedzialności (COR) obejmuje proces wskazywania działań i odpowiedzialności każdego podmiotu we wzorcu projektowym zorientowanym obiektowo. W projektowaniu zorientowanym obiektowo istnieją dwa podstawowe elementy; obiekty poleceń i obiekty przetwarzania. Obiekty poleceń generują polecenia dla obiektów przetwarzania, a obiekty przetwarzania wybierają spośród poleceń, które mogą obsłużyć, a resztę przekazują innym w łańcuchu. Jest to podstawowa zasada projektowania zorientowanego obiektowo, a projekt zapewnia znacznie większą elastyczność, na przykład nowe zamknięcie obiektów w dowolnym miejscu we wzorcu projektowym łańcucha odpowiedzialności.

Zaletą projektu zorientowanego obiektowo jest to, że komunikacja nie ogranicza się do nadawcy i odbiorcy, ponieważ istnieje wiele obiektów do obsługi polecenia nadawcy. Istnieje łańcuch różnych obiektów, które ustawiają się w kolejce do obsługi poleceń, a jeśli ktoś nie może tego obsłużyć, może przekazać go następnemu 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 osób zajmujących się obsługą w łańcuchu. Ponieważ każdy przewodnik nie jest w stanie wykonać każdego zadania, musi istnieć grupa przewodników, którzy mogą współpracować. Ł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 programów obsługi dla wszystkich możliwych żądań.

Mogą wystąpić pewne problemy związane z uszkodzonymi ogniwami w łańcuchu odpowiedzialności. Jeśli programista zapomni połączyć polecenia, żądanie może zostać utracone. Reprezentacja żądania jest istotna, ponieważ jest używana we wszystkich elementach łańcucha odpowiedzialności. Inną wadą, która może tkwić w projekcie KR-u, jest to, że z powodu pewnych problemów związanych z obsługą betonu niektóre wnioski mogą zostać całkowicie nierozpatrzone na końcu łańcucha. Ale ogólnie rzecz biorąc, łańcuch odpowiedzialności jest dobrym systemem do wdrożenia, jeśli został starannie zaprojektowany, z uwzględnieniem wszystkich powiązanych aspektów.