MVC 패턴은 "Model-View-Controller"의 약어이며 중국어로 "Model-View-Controller"로 번역됩니다.
MVC 애플리케이션은 항상 이 세 부분으로 구성됩니다.
이벤트(event)는 컨트롤러가 모델이나 뷰 또는 둘 다를 동시에 변경하도록 합니다.
컨트롤러가 모델의 데이터나 속성을 변경하는 한 모든 종속 뷰는 자동으로 업데이트됩니다.
마찬가지로 컨트롤러가 뷰를 변경할 때마다 뷰는 기본 모델에서 데이터를 가져와 자체적으로 새로 고쳐집니다.
MVC 패턴은 Smalltalk 언어 연구 그룹에서 처음 제안되었으며 사용자 상호 작용 애플리케이션에 사용됩니다.
Smalltalk 언어와 Java 언어 사이에는 많은 유사점이 있습니다. 둘 다 객체 지향 언어입니다. 당연히 SUN은 petstore(pet store) 예제 애플리케이션에서 웹 애플리케이션을 개발하기 위한 아키텍처 패턴으로 MVC 패턴을 권장했습니다.
MVC 패턴은 실제로 다른 패턴의 협업이 필요한 아키텍처 패턴입니다.
J2EE 모드 디렉토리에는 일반적으로 작업자 모드에 대한 서비스가 구현되며 작업자 모드에 대한 서비스는 중앙 컨트롤러 모드, 디스패처 모드 및 페이지 도우미 모드로 구성될 수 있습니다.
Struts는 MVC의 View 및 Controller 부분만 구현합니다. Model 부분은 개발자가 직접 구현해야 합니다. Struts는 개발자가 Struts 프레임워크에 Model을 적용할 수 있도록 추상 클래스 Action을 제공합니다.
MVC 패턴은 복잡한 아키텍처 패턴이며 구현도 매우 복잡합니다.
그러나 우리는 신뢰할 수 있는 많은 디자인 패턴을 얻었습니다. 여러 디자인 패턴의 조합으로 인해 MVC 패턴 구현이 비교적 간단하고 쉬워졌습니다.
뷰는 복합 패턴을 사용하여 구현할 수 있는 트리로 간주될 수 있습니다.
뷰와 모델 간의 관계는 관찰자 패턴으로 반영될 수 있습니다.
컨트롤러는 전략 패턴을 사용하여 구현할 수 있는 뷰의 표시를 제어합니다.
모델은 일반적으로 중재자이며 중재자 패턴을 사용하여 구현할 수 있습니다.
이제 J2EE 아키텍처에서 MVC의 세 부분이 어디에 있는지 이해해 보겠습니다. 이는 MVC 패턴 구현을 이해하는 데 도움이 됩니다.
MVC와 J2EE 아키텍처 간의 해당 관계는 다음과 같습니다. 보기는 웹 계층 또는 클라이언트 계층(일반적으로 페이지 표시 부분인 JSP/Servlet)에 있습니다.
컨트롤러도 웹 계층에 있으며 일반적으로 서블릿으로 구현됩니다. 즉, 페이지 표시의 논리적 부분이 구현됩니다.
모델은 중간 계층에 있으며 일반적으로 서버 측에서 JavaBean 또는 EJB를 사용하여 구현됩니다. 즉, 비즈니스 로직 부분의 구현입니다.
1. MVC 설계 아이디어 MVC는 영어로 Model-View-Controller로, 애플리케이션의 입력, 처리, 출력 과정을 Model, View, Controller 형태로 분리합니다. 이렇게 애플리케이션은 3개의 레이어로 나누어집니다. - 모델 레이어 및 뷰 레이어, 제어 레이어.
뷰는 사용자 상호작용 인터페이스를 나타내며, 웹 애플리케이션의 경우 HTML 인터페이스로 요약될 수 있지만 XHTML, XML 및 애플릿일 수도 있습니다.
애플리케이션이 복잡해지고 규모가 커짐에 따라 인터페이스 처리가 어려워집니다.
애플리케이션에는 다양한 뷰가 있을 수 있습니다. MVC 디자인 패턴의 뷰 처리는 뷰에 대한 데이터 수집 및 처리와 사용자 요청으로 제한되며 뷰에 대한 비즈니스 프로세스 처리는 포함되지 않습니다.
비즈니스 프로세스 처리는 모델에 전달됩니다.
예를 들어 주문 보기는 모델의 데이터만 받아 사용자에게 표시하고, 사용자 인터페이스의 입력 데이터와 요청을 컨트롤과 모델에 전달합니다.
모델: 비즈니스 프로세스/상태를 처리하고 비즈니스 규칙을 공식화하는 것입니다.
비즈니스 프로세스의 처리는 다른 레이어에 대한 블랙박스 작업입니다. 모델은 뷰에서 요청한 데이터를 수락하고 최종 처리 결과를 반환합니다.
비즈니스 모델의 디자인은 MVC의 가장 중요한 핵심이라고 할 수 있습니다.
현재 널리 사용되는 EJB 모델은 기존 구성 요소를 최대한 활용하기 위해 응용 기술 구현 관점에서 모델을 더 세분화한 전형적인 응용 사례이지만 응용 프로그램 설계 모델을 위한 프레임워크로 사용할 수는 없습니다.
단지 이 모델에 따른 설계가 특정 기술 구성 요소를 활용하여 기술적 어려움을 줄일 수 있다는 점만 알려줄 뿐입니다.
개발자의 경우 비즈니스 모델 설계에만 집중할 수 있습니다.
MVC 디자인 패턴은 특정 규칙에 따라 애플리케이션 모델이 추출된다는 것을 알려줍니다. 추출 수준은 개발자가 우수한지 여부를 판단하는 디자인 기준이기도 합니다.
추상성과 구체성은 너무 멀리 떨어져 있을 수도, 너무 가까워질 수도 없습니다.
MVC는 모델 설계 방법을 제공하지 않으며, 모델 재구성을 용이하게 하고 재사용성을 향상시키기 위해 이러한 모델을 구성하고 관리해야 한다는 점만 알려줍니다.