책임 : 단일 책임 원칙에서의 책과 동일하며, 클래스가 변경되는건 하나의 책임을 가지고 변경이 되어야하는것을 의미한다.
예를 들어 본문 요청에서 인증 및 인가 처리를 진행할때 유효한것인가?에 대한 고민을 해야하는데 방법으로 직접 코드를 수정하는 간단한 방법이 있다!
→ 해당 방식으로 변경하면 단일 책임 원칙에서 문제가 된다.
public class AuthRequestHandler extends RequestHandler {
public void handler(Request request) {
System.out.println("인증이 되었나?");
System.out.println("이 핸들러를 사용할 수 있는 유저인가?");
super.handler(request);
}
}
public class LoggingRequestHandler extends RequestHandler {
@Override
public void handler(Request request) {
System.out.println("로깅");
super.handler(request);
}
}
→ 책임 연쇄 패턴을 사용하여 패턴을 제작하면된다.
체인을 구성하는 방법에 따라 바로 넘길수 있고, 또한 경우에 따라 체인을 하나만 사용할수 있다.
체인을 1→2→3 으로 갔다가 3→2→1로 뒤돌아갈수있다. 응답 처리에 사용하는 패턴입니다.