상세 컨텐츠

본문 제목

Chain of Responsibility 패턴 배워보기

Java

by techbard 2014. 1. 20. 19:58

본문

반응형

책임 위임 패턴이라고 한다.

 

1. 먼저 성질만 뽑아내어 클래스로 만든다. 

 

2. 추상 클래스를 작성하는데 이 클래스가 하는 일이 좀 많다.

 

setNextCheck 메소드는 Check 타입을 리턴하며, . 연산자를 지원하기 위해 자기 자신 객체를 리턴한다. (return nextCheck;)

 

check 메소드에서는 isResolve 메소드를 통해서 처리 가능하다면 done, 남은 처리자가 더 있으면 다시 재귀호출, 남은 처리자가 없으면 fail 메소드를 호출한다.

 

3. 처리자 클래스의 작성

 

 

 

 

 

4. 이제 테스트 클래스를 작성한다.

 

결과:

[Error Number: 0] is resolved by UnderLimit.
[Error Number: 30] is resolved by UnderLimit.
[Error Number: 60] cannot be resolved.
[Error Number: 90] is resolved by Specific number.

 

각각의 처리자 객체를 생성한 후 그들을 setNextCheck 메소드를 통해 멤버변수에 다음 처리할 객체를 지정한다. 11번 라인의 맨 마지막 setNextCheck(specificCheck)에서는 private Check nextCheck; 에 null이 들어갈 것으로 예상된다.

 

이제 for문에서 값을 만들어 던지면 멤버에 저장된 다음 처리 클래스 객체를 찾아가며 던져진 값을 돌아가며 평가하게 되며 isResolved에서 True가 되면 그 값에 대한 평가는 멈춘다.

 

CORPattern.zip

 

 

반응형

관련글 더보기

댓글 영역