구조도

structure.png

  • Handler 요청을 수신하고 처리객체들의 집합에 전달하는 인터페이스
    집합의 첫 번째 핸들러에 대한 정보만 가지고 있음

  • Concrete handlers 요청을 처리하는 객체

  • Client 요청을 전달하는 클라이언트

책임 연쇄 패턴이란?

명령 객체와 일련의 처리 객체를 포함하는 패턴으로

각각의 처리 객체는 명령 객체를 처리할 수 있는 연산의 집합이고

체인 안의 처리 객체가 핸들할 수 없는 명령은 다음 처리 객체로 넘겨지며 처리된다.

장점

  • 요청을 보낸 쪽하고 받는 쪽을 분리시킬 수 있다
  • 객체에는 사슬의 구조를 몰라도 되고 그 사슬에 들어있는
    다른 객체에 대한 직접적인 레퍼런스를 가질 필요도 없기 때문에
    객체를 단순하게 만들 수 있다
  • 사슬에 들어가는 객체를 바꾸거나 순서를 바꿈으로써 역활을 동적으로 추가/제거할 수 있다.

단점

  • 실행시 과정을 살펴보거나 디버깅하기 힘들 수 있음
  • 요청이 반드시 처리된다는 보장이 없음

참조