책임 연쇄 패턴
구조도⌗
-
Handler
요청을 수신하고 처리객체들의 집합에 전달하는 인터페이스
집합의 첫 번째 핸들러에 대한 정보만 가지고 있음 -
Concrete handlers
요청을 처리하는 객체 -
Client
요청을 전달하는 클라이언트
책임 연쇄 패턴이란?⌗
명령 객체와 일련의 처리 객체를 포함하는 패턴으로
각각의 처리 객체는 명령 객체를 처리할 수 있는 연산의 집합이고
체인 안의 처리 객체가 핸들할 수 없는 명령은 다음 처리 객체로 넘겨지며 처리된다.
장점⌗
- 요청을 보낸 쪽하고 받는 쪽을 분리시킬 수 있다
- 객체에는 사슬의 구조를 몰라도 되고 그 사슬에 들어있는
다른 객체에 대한 직접적인 레퍼런스를 가질 필요도 없기 때문에
객체를 단순하게 만들 수 있다 - 사슬에 들어가는 객체를 바꾸거나 순서를 바꿈으로써 역활을 동적으로 추가/제거할 수 있다.
단점⌗
- 실행시 과정을 살펴보거나 디버깅하기 힘들 수 있음
- 요청이 반드시 처리된다는 보장이 없음
참조⌗
- Head First Design Patterns
- 예제 소스