재밌고 어려운 IT를 이해해보자~!
HandlerMapper, Factory pattern 본문
스프링의 FC에는 HandlerMapper 라는 멤버변수가 있다!
HandlerMapper는 POJO이며 사용자의 요청정보에 알맞는 Controller(==Action 객체) 를 반환한다.
HandlerMapping 이란?
HandelrMapper Class 를 자바로 구현해보자
package controller;
import java.util.Map;
//POJO
// 사용자의 요청정보에 알맞는 Controller(==Action 객체) 를 반환
public class HandlerMapper {
//커맨드에 대해 알맞은 멤버변수를 mappings 가 받고있다.
private Map<String,Action> mappings;
public handlerMapper() {
//Map이아니라 HashMap을 사용하는 이유는 Map은 추상클래스 이기 떄문이다
this.mappings=new HashMap<String,Action>();
//mappings에 add 하는 행동 add 대신 put 쓴다
this.mappings.put("/main.do", new MainAction());
this.mappings.put("/login.do", new LoginAction());
// KEY, VALUE 값
}
public Action getAction(String commend) {
//map이라는 커맨드 자체가 get이라는 메서드를 가지고있는데
//string commend에 대해 값을 반환해줘
return mappings.get(commend);
}
}
//CTRL
//컨트롤러에 코드가 정말 길었는데 그건 다 forward들 받아내기 위한 행동이다.
// 앞으로는 Handler를 통해서 받는다! 2줄로 줄어둚
// ACtion actionhnadler.getAction(command);
//나한테 Action 객체 주라 ===> 팩토리 패턴 이라고함.
//팩토리 패턴 : 요청에 대해 알맞은 객체를 반환하는 패턴
// HM (HandlerMapper) 가 가장 대표적인 팩토리 패턴을 활용하는 클래스
//Actionforward forward = action.excute(request, response); 로 변경
Factory Pattern 이란?
팩토리 패턴은 객체 생성을 공장(Factory) 클래스로 캡슐화 처리하여 대신 생성하게 하는 생성 디자인 패턴이다.
즉, 클라이언트에서 직접 new 연산자를 통해 제품 객체를 생성하는 것이 아닌, 제품 객체들을 도맡아 생성하는 공장 클래스를 만들고, 이를 상속하는 서브 공장 클래스의 메서드에서 여러가지 제품 객체 생성을 각각 책임 지는 것이다.
또한 객체 생성에 필요한 과정을 템플릿 처럼 미리 구성해놓고, 객체 생성에 관한 전처리나 후처리를 통해 생성 과정을 다양하게 처리하여 객체를 유연하게 정할 수 있는 특징도 있다.
*참조
'코리아IT핀테크과정' 카테고리의 다른 글
VIEW에 JSTL, EL, CustomTag 사용하기 [TEAM PROJECT] (0) | 2024.01.23 |
---|---|
Image Upload Update [TEAM PROJECT] (0) | 2024.01.20 |
서블릿 Filter, Listner, XML (0) | 2024.01.18 |
JSTL, Custom tag (0) | 2024.01.17 |
Jquery practice (0) | 2024.01.16 |
Comments