3.     The Front Controller Pattern

“Front Controller”패턴은 공통으로 발생하는 요청 처리를Controller에 맡기고,다음View에 위임한다.요청 처리를 집중시키면 이 로직이 뷰와 섞이지 않고,여러 뷰들의 공통역할을 하게 된다.그러므로 이 로직을 유지보수하고 확장하는 것이 좀더 수월해진다.

“Front Controller”패턴에서 컨트롤러는Servlet이나JSP로 구현된다.하지만 주로Servlet으로 구현되는게 일반적이다.

ServletJSP Controller의 차이점

 

JSP :일반적으로 요청 처리보다는 출력 형식에 더 가깝다. JSP로 컨트롤러를 만들면 여러가지가 복잡하게 된다.

Servlet :요청 처리 코드와HTML이 분리되기 때문에 유지보수하기가 쉬워진다.

 

구조


사용자 삽입 이미지

Front Controller pattern class diagram

 


사용자 삽입 이미지

Front Controller sequence diagram

일반적으로ControllerHelper사이에Command패턴을 사용한다. Controller의 권한 위임을Command객체가 받음으로써 위임 프로세스들 간의 결합력을 약하게 한다.

 

 

역할

n         Controller:

요청를 처리하고,다음View에 위임하는 시작점

 

n         Dispatcher:

View관리와 내비게이션을 담당

 

n         View:

클라이언트에게 필요한 정보를 보여준다.

 

n         Helper:

Viewcontroller가 작업을 제대로 수행하도록 도와준다.

 

의도

입력되는 클라이언트의 요청을 처리하는 객체를 단일화하여 그것에게 웹 애플리케이션의View관리를 집중화 시킨다.

 

결론

n         쉽고 이해와 구성이 쉬운 내비게이션 가능:내비게이션의 구조를 이해할 때Controller만 살펴보면되고,내비게이션을 수정할 때Controller만 수정하면 된다.

n         View의 쉬운 변경과 재사용: View는 오직Controller와 통신하기 때문에View들 간에는 어떠한 의존 관계도 없다.

n         Front Controller의 복잡성 이동:애플리케이션이 거대해질수록 컨트롤러를 유지보수하기 어려워진다.

 

예제소스

Intercepting Filter Pattern의 예제 소스는ControllerServlet으로 사용한Font Controller Pattern과 통일 하므로 여기서 예제 소스는 제시하지 않습니다.

'Programming > Design Pattern' 카테고리의 다른 글

[펌] The Composite View pattern  (0) 2006.01.21
[펌] The Interception Filter Pattern  (0) 2006.01.21
[펌] The View Helper Pattern  (0) 2006.01.21
[펌] The Composite View pattern  (0) 2006.01.21
[펌] The Observer Pattern  (0) 2006.01.21

Posted by 영웅기삼
,