SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
CHAIN OF
RESPONSIBILITY
SOFTWARE MAESTRO 10TH 심수연
CHAIN OF RESPONSIBILITY
역할 사슬 패턴이란?
▸ 여러 개의 객체 중에서 어떤 것이 요구를 처리할 수 있는지를 사전에
알 수 없을 때 사용됩니다.
▸ 요청 처리가 들어오게 되면 그것을 수신하는 객체가 자신이 처리 할 수
없는 경우에는 다음 객체에게 문제를 넘김으로써 최종적으로 요청을
처리 할 수 있는 객체에 의해 처리가 가능하도록 하는 패턴입니다.
출처: https://lktprogrammer.tistory.com/45
?
CHAIN OF RESPONSIBILITY
출처: https://refactoring.guru/design-patterns/chain-of-responsibility
CHAIN OF RESPONSIBILITY
NO CHAIN
CHAIN
출처: https://refactoring.guru/design-patterns/chain-of-responsibility
CHAIN OF RESPONSIBILITY
역할 사슬 패턴이란?
▸ 여러 개의 객체 중에서 어떤 것이 요구를 처리할 수 있는지를 사전에
알 수 없을 때 사용됩니다.
▸ 요청 처리가 들어오게 되면 그것을 수신하는 객체가 자신이 처리 할 수
없는 경우에는 다음 객체에게 문제를 넘김으로써 최종적으로 요청을
처리 할 수 있는 객체에 의해 처리가 가능하도록 하는 패턴입니다.
출처: https://lktprogrammer.tistory.com/45
CHAIN OF RESPONSIBILITY
예제) 1~20까지 수 홀,짝 판단하기
Client
Handler
Concrete
Handler1
Concrete
Handler2
출처: https://lktprogrammer.tistory.com/45
CHAIN OF RESPONSIBILITY
CLIENT
▸ Client 역할을 담당하는 main
▸ Handler에 Request 전달
▸ Receiver 객체를 2개 생성
▸ Odd_Receiver 먼저 실행 후
Even_Receiver 실행으로 순서 지정
▸ 반복문으로 1~20까지를 실행
출처: https://lktprogrammer.tistory.com/45
CHAIN OF RESPONSIBILITY
HANDLER
▸ Handler 역할을 담당하는 Receiver
▸ next, request 처리
▸ 수신 객체가 가져야할 공통 인터페이스를
정의 및 구현
▸ setNext(): 다음에 처리 요청을 할 수신
객체 지정
▸ support(): 처리 요청 완료 여부에 따라
분기
출처: https://lktprogrammer.tistory.com/45
CHAIN OF RESPONSIBILITY
CONCRETE HANDLER1
▸ Concrete Handler 역할을 담당하는
Odd_Receiver
▸ 홀수에 대한 처리 요청 완료
출처: https://lktprogrammer.tistory.com/45
CHAIN OF RESPONSIBILITY
CONCRETE HANDLER2
▸ Concrete Handler 역할을 담당하는
Even_Receiver
▸ 짝수에 대한 처리 요청 완료
출처: https://lktprogrammer.tistory.com/45
CHAIN OF RESPONSIBILITY
예시 결과
출처: https://lktprogrammer.tistory.com/45
CHAIN OF RESPONSIBILITY
역할 사슬 패턴의 장・단점
▸ 동적으로 연결의 형태를 바꿀 수 있다.
▸ 책임에만 집중할 수 있다.
▸ 떠넘기기로 처리가 늦어질 수 있다.
출처: http://www.devpia.com/MAEUL/Contents/Detail.aspx?
BoardID=205&MAEULNo=4&no=19498&ref=19498
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
미흡한 발표
들어주셔서
감사합니다 :)

Mais conteúdo relacionado

Mais de YoungSu Son

오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리) 오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
YoungSu Son
 

Mais de YoungSu Son (20)

DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심) DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
DevOps 오픈소스 트랜드 (클라우드, 모바일 중심)
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
 
DevOps 시대가 요구하는 품질확보 방법
DevOps 시대가 요구하는 품질확보 방법 DevOps 시대가 요구하는 품질확보 방법
DevOps 시대가 요구하는 품질확보 방법
 
클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기클라우드 환경에서 알아야할 성능 이야기
클라우드 환경에서 알아야할 성능 이야기
 
Android 성능 지표와 Oreo 의 개선사항
Android 성능 지표와  Oreo 의 개선사항 Android 성능 지표와  Oreo 의 개선사항
Android 성능 지표와 Oreo 의 개선사항
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
 
SW 아키텍처 분석방법
SW 아키텍처 분석방법 SW 아키텍처 분석방법
SW 아키텍처 분석방법
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법
 
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionAndroid Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + Genymotion
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기
 
[NEXT] GCM을 이용한 게시글 자동 갱신
[NEXT] GCM을 이용한 게시글 자동 갱신[NEXT] GCM을 이용한 게시글 자동 갱신
[NEXT] GCM을 이용한 게시글 자동 갱신
 
[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기
 
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
 
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리) 오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
 
URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표 URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표
 
[NEXT] Nextgram Refactoring
[NEXT] Nextgram Refactoring[NEXT] Nextgram Refactoring
[NEXT] Nextgram Refactoring
 
[NEXT] Android Profiler
[NEXT] Android Profiler[NEXT] Android Profiler
[NEXT] Android Profiler
 
NIO로 구현 Reactor/ Proactor 성능 테스트
NIO로 구현 Reactor/ Proactor 성능 테스트 NIO로 구현 Reactor/ Proactor 성능 테스트
NIO로 구현 Reactor/ Proactor 성능 테스트
 

Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)

  • 2. CHAIN OF RESPONSIBILITY 역할 사슬 패턴이란? ▸ 여러 개의 객체 중에서 어떤 것이 요구를 처리할 수 있는지를 사전에 알 수 없을 때 사용됩니다. ▸ 요청 처리가 들어오게 되면 그것을 수신하는 객체가 자신이 처리 할 수 없는 경우에는 다음 객체에게 문제를 넘김으로써 최종적으로 요청을 처리 할 수 있는 객체에 의해 처리가 가능하도록 하는 패턴입니다. 출처: https://lktprogrammer.tistory.com/45 ?
  • 3. CHAIN OF RESPONSIBILITY 출처: https://refactoring.guru/design-patterns/chain-of-responsibility
  • 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
  • 11. CHAIN OF RESPONSIBILITY 예시 결과 출처: 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