팩토리패턴 캡슐화 한다 (캡슐화) 클래스의 인스턴스를 만드는 것을 서브클래스에서 결정하도록하는것 즉, new 키워드를 사용하는 부분을 서브클래스에 위임함으로서 객체 생성을 캡슐화하고 구상 클래스에 대한 의존성이 줄어든다
우리는 라우터에 위임한 것
private Action router(String cmd) {
if(cmd.equals("joinForm")) {
return new JoinFormAction(); //JoinFormAction에 위임
}else if (cmd.equals("join")) {
return new JoinAction();
}else if (cmd.equals("loginForm")) {
}else if (cmd.equals("login")) {
}else if (cmd.equals("updateForm")) {
}else if (cmd.equals("update")) {
}else if (cmd.equals("logout")) {
}
return null;
}
Action action = router(cmd);
if(action != null) {
action.execute(request, response);
액션 객체하나 만들어서 널인지 체크해야됨
Action
return new JoinFormAction(); JoinFormAction에 넘긴다
Action.java
public interface Action {
public void execute(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException;
}
JoinFormAction.java
public class JoinFormAction implements Action{
@Override
public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
오버라이드 해서 자식이 실행되도록 하는것