본문 바로가기

개발

서블릿으로 Dispatchservlet 역할 구현하기-3 (reflection, method, invoke)

요구메소드나 클래스 값이 어떤값이 오든 설정파일에 있으면 실시간으로 받아들여서 처리하는 코드와 설정파일 작성.

<문제 1> 역할 구현하기-2는 if method.equals('~~~') 이렇게 되있어서 메소드가 추가 될때마다 if문이 들어가야함.

<해결 1> 팩토리 패턴을 사용해서 if를 제거할수 있다고 생각

 

<문제 1-1> if문을 패턴지향적으로 없앤다면 클래스가 늘어나고 모든 요구사항을 반영하는데 있어서 수정이 불가피함. 디자인 패턴을 사용하는 이유는 얼마나 유연하게 갈것인가 인데 단순히 메소드 하나 호출시켜주고 싶은데 클래스가 많이 늘어나야 할 필요가 없음.

두가지의 해결 ​방법이 있음.

1. xml설정해서 매핑으로 해결. (문제점 : 메소드는 자동으로 갈라지게 할수 없음)

2. ​힌트를 이용해서 해결.

(힌트) reflection, method, invoke