2. CHAIN OF RESPONSIBILITY
역할 사슬 패턴이란?
▸ 여러 개의 객체 중에서 어떤 것이 요구를 처리할 수 있는지를 사전에
알 수 없을 때 사용됩니다.
▸ 요청 처리가 들어오게 되면 그것을 수신하는 객체가 자신이 처리 할 수
없는 경우에는 다음 객체에게 문제를 넘김으로써 최종적으로 요청을
처리 할 수 있는 객체에 의해 처리가 가능하도록 하는 패턴입니다.
출처: https://lktprogrammer.tistory.com/45
?
4. CHAIN OF RESPONSIBILITY
NO CHAIN
CHAIN
출처: https://refactoring.guru/design-patterns/chain-of-responsibility
5. CHAIN OF RESPONSIBILITY
역할 사슬 패턴이란?
▸ 여러 개의 객체 중에서 어떤 것이 요구를 처리할 수 있는지를 사전에
알 수 없을 때 사용됩니다.
▸ 요청 처리가 들어오게 되면 그것을 수신하는 객체가 자신이 처리 할 수
없는 경우에는 다음 객체에게 문제를 넘김으로써 최종적으로 요청을
처리 할 수 있는 객체에 의해 처리가 가능하도록 하는 패턴입니다.
출처: https://lktprogrammer.tistory.com/45
6. CHAIN OF RESPONSIBILITY
예제) 1~20까지 수 홀,짝 판단하기
Client
Handler
Concrete
Handler1
Concrete
Handler2
출처: https://lktprogrammer.tistory.com/45
7. CHAIN OF RESPONSIBILITY
CLIENT
▸ Client 역할을 담당하는 main
▸ Handler에 Request 전달
▸ Receiver 객체를 2개 생성
▸ Odd_Receiver 먼저 실행 후
Even_Receiver 실행으로 순서 지정
▸ 반복문으로 1~20까지를 실행
출처: https://lktprogrammer.tistory.com/45
8. CHAIN OF RESPONSIBILITY
HANDLER
▸ Handler 역할을 담당하는 Receiver
▸ next, request 처리
▸ 수신 객체가 가져야할 공통 인터페이스를
정의 및 구현
▸ setNext(): 다음에 처리 요청을 할 수신
객체 지정
▸ support(): 처리 요청 완료 여부에 따라
분기
출처: https://lktprogrammer.tistory.com/45
9. CHAIN OF RESPONSIBILITY
CONCRETE HANDLER1
▸ Concrete Handler 역할을 담당하는
Odd_Receiver
▸ 홀수에 대한 처리 요청 완료
출처: https://lktprogrammer.tistory.com/45
10. CHAIN OF RESPONSIBILITY
CONCRETE HANDLER2
▸ Concrete Handler 역할을 담당하는
Even_Receiver
▸ 짝수에 대한 처리 요청 완료
출처: https://lktprogrammer.tistory.com/45
12. CHAIN OF RESPONSIBILITY
역할 사슬 패턴의 장・단점
▸ 동적으로 연결의 형태를 바꿀 수 있다.
▸ 책임에만 집중할 수 있다.
▸ 떠넘기기로 처리가 늦어질 수 있다.
출처: http://www.devpia.com/MAEUL/Contents/Detail.aspx?
BoardID=205&MAEULNo=4&no=19498&ref=19498
13. CHAIN OF RESPONSIBILITY
관련 패턴
▸ Composite pattern: Handler 간의 링크를 내부적으로 정의할 수
있다. 링크 생성 비용이 감소한다.
▸ Command pattern: Request 자체를 클래스로 만들어서 서로 구
별할 수 있게 해준다.
출처: http://www.devpia.com/MAEUL/Contents/Detail.aspx?
BoardID=205&MAEULNo=4&no=19498&ref=19498