역할 사슬(Chain of Responsibility) 패턴

오형민·2021년 9월 13일
0

디자인패턴

목록 보기
5/6
post-thumbnail

요약

요청을 처리할 수 있는 기회를 하나 이상의 객체에게 부여함으로써 요청하는 객체와 처리하는 객체 사이의 결합도를 없애려는 것이다. 요청을 해결할 객체를 만날 때까지 객체 고리를 따라서 요청을 전달한다.(GoF)

한 요청을 두개 이상의 객체에서 처리하고 싶다면 역할 사슬 패턴을 사용하면 됩니다.

구조예시

잡설

  • 약간 Rx / Stream

장단점

장점

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

단점

  • 요청이 반드시 수행된다는 보장이 없을 수 있습니다.
  • 실행시에 과정을 살펴고거나 디버깅 하기가 힘들 수 있습니다.

0개의 댓글