“Front Controller”패턴은 공통으로 발생하는 요청 처리를Controller에 맡기고,다음View에 위임한다.요청 처리를 집중시키면 이 로직이 뷰와 섞이지 않고,여러 뷰들의 공통역할을 하게 된다.그러므로 이 로직을 유지보수하고 확장하는 것이 좀더 수월해진다.
“Front Controller”패턴에서 컨트롤러는Servlet이나JSP로 구현된다.하지만 주로Servlet으로 구현되는게 일반적이다.
Servlet과JSP Controller의 차이점 JSP :일반적으로 요청 처리보다는 출력 형식에 더 가깝다. JSP로 컨트롤러를 만들면 여러가지가 복잡하게 된다. Servlet :요청 처리 코드와HTML이 분리되기 때문에 유지보수하기가 쉬워진다. |
구조
|
|
일반적으로Controller와Helper사이에Command패턴을 사용한다. Controller의 권한 위임을Command객체가 받음으로써 위임 프로세스들 간의 결합력을 약하게 한다.
역할
n Controller:
요청를 처리하고,다음View에 위임하는 시작점
n Dispatcher:
View관리와 내비게이션을 담당
n View:
클라이언트에게 필요한 정보를 보여준다.
n Helper:
View와controller가 작업을 제대로 수행하도록 도와준다.
의도
입력되는 클라이언트의 요청을 처리하는 객체를 단일화하여 그것에게 웹 애플리케이션의View관리를 집중화 시킨다.
결론
n 쉽고 이해와 구성이 쉬운 내비게이션 가능:내비게이션의 구조를 이해할 때Controller만 살펴보면되고,내비게이션을 수정할 때Controller만 수정하면 된다.
n View의 쉬운 변경과 재사용: View는 오직Controller와 통신하기 때문에View들 간에는 어떠한 의존 관계도 없다.
n Front Controller의 복잡성 이동:애플리케이션이 거대해질수록 컨트롤러를 유지보수하기 어려워진다.
예제소스
“Intercepting Filter Pattern”의 예제 소스는Controller를Servlet으로 사용한“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 |