현재 위치 - 주공해몽공식사이트 - 랜덤 번호 뽑기 점술 - Java 의 MVC 는 무엇입니까?

Java 의 MVC 는 무엇입니까?

첫째, MVC 란 무엇입니까

모델: 모델 레이어

뷰: 뷰 레이어

제어기: 제어 레이어

MVC (모달 뷰 컨트롤러) 는 원래 데스크톱 프로그램에 존재합니다. 여기서 M 은 데이터 모델, V 는 사용자 인터페이스, C 는 컨트롤러입니다. MVC 를 사용하는 목적은 M 과 V 의 구현 코드를 분리하여 동일한 프로그램에서 다른 표현을 사용할 수 있도록 하는 것입니다. 예를 들어, 일련의 통계는 히스토그램과 원형 차트로 나타낼 수 있습니다. C 의 목적은 M 과 V 의 동기화를 보장하고 M 이 변경되면 V 도 동시에 업데이트해야 한다는 것이다.

모델-뷰-컨트롤러 (MVC) 는 1980 년대 PARC 제록스가 프로그래밍 언어인 Small Talk-80 을 대표하여 발명한 소프트웨어 디자인 모델이며 지금도 널리 사용되고 있습니다. 최근 몇 년 동안 Sun 의 J2EE 플랫폼 디자인 모델로 추천됐으며 ColdFusion 과 PHP 를 사용하는 개발자들의 인기가 높아지고 있습니다. 모델-뷰-컨트롤러 모드는 많은 장점이 있지만 몇 가지 단점이 있는 유용한 도구상자입니다.

둘째, MVC 는 어떻게 작동합니까

MVC 는 응용 프로그램의 입력, 처리 및 출력을 강제로 분리하는 디자인 패턴입니다. MVC 를 사용하는 어플리케이션은 모델, 뷰 및 컨트롤러의 세 가지 핵심 구성 요소로 나뉩니다. 그들은 각자 자신의 임무를 처리한다.

시야각

뷰는 사용자가 보고 상호 작용하는 인터페이스입니다. 기존 웹 응용 프로그램의 경우 뷰는 HTML 요소로 구성된 인터페이스입니다. 새로운 웹 응용 프로그램에서 HTML 은 여전히 뷰에서 중요한 역할을 하지만, Macromedia Flash, XHTML, XML/XSL, WML, 웹 서비스 등 일부 새로운 기술도 잇따르고 있습니다.

응용 프로그램의 인터페이스를 처리하는 방법이 점점 더 어려워지고 있습니다. MVC 의 큰 장점 중 하나는 응용 프로그램에 대해 여러 가지 뷰를 처리할 수 있다는 것입니다. 사실, 온라인 저장이든 직원 목록이든, 보기는 데이터를 출력하고 사용자가 데이터를 조작할 수 있는 방법일 뿐입니다.

모형

이 모델은 엔터프라이즈 데이터 및 비즈니스 규칙을 나타냅니다. MVC 의 세 가지 구성 요소 중 모델 처리 작업이 가장 많습니다. 예를 들어 EJB 및 ColdFusion 구성 요소와 같은 구성 요소 객체를 사용하여 데이터베이스를 처리할 수 있습니다. 모델에서 반환된 데이터는 중립적입니다. 즉, 모델이 데이터 형식과 무관하므로 모델이 여러 뷰에 데이터를 제공할 수 있습니다. 모형에 적용된 코드는 한 번만 작성하면 여러 뷰에서 재사용할 수 있으므로 코드 중복이 줄어듭니다.

컨트롤러

컨트롤러는 사용자의 입력을 수락하고 사용자의 요구를 충족하기 위해 모델과 뷰를 호출합니다. 따라서 웹 페이지에서 하이퍼링크를 클릭하여 HTML 양식을 보낼 때 컨트롤러 자체는 아무 것도 출력하지 않으며 아무 작업도 하지 않습니다. 요청을 수신하고 요청을 처리하기 위해 호출할 모델 구성품을 결정한 다음 모델 처리에서 반환된 데이터를 표시하는 데 사용할 뷰를 결정합니다.

이제 MVC 처리 과정을 요약해 보겠습니다. 먼저 컨트롤러는 사용자의 요청을 수신하고 처리할 모델을 결정합니다. 그런 다음 모델은 비즈니스 논리를 사용하여 사용자의 요청을 처리하고 데이터를 반환합니다. 마지막으로 컨트롤러는 모델에서 반환된 데이터를 적절한 뷰로 포맷하고 표현 계층을 통해 사용자에게 제공합니다.

셋째, 왜 MVC 를 사용해야 합니까?

대부분의 웹 응용 프로그램은 ASP, PHP 또는 CFML 과 같은 절차 언어로 만들어집니다. 이들은 데이터베이스 질의문과 같은 데이터 계층 코드를 HTML 과 같은 표현 계층 코드와 혼합했다. 숙련된 개발자는 프레젠테이션 계층에서 데이터를 분리할 수 있지만, 일반적으로 쉽게 할 수 없습니다. 신중한 계획과 지속적인 테스트가 필요합니다. MVC 는 근본적으로 그들을 분리시켰다. MVC 응용 프로그램을 구축하려면 약간의 추가 작업이 필요하지만, 그것이 우리에게 주는 이점은 의심할 여지가 없다.

첫째, 가장 중요한 점은 여러 뷰가 하나의 모형을 공유할 수 있다는 것입니다. 앞서 언급했듯이, 귀하의 어플리케이션에 액세스하는 방법이 점점 더 많아지고 있습니다. 이에 대한 해결책 중 하나는 사용자가 플래시 인터페이스를 원하든 Flash 인터페이스를 원하든 MVC 를 사용하는 것입니다. 그것들은 모형으로 처리할 수 있다. 표현 계층에서 데이터와 비즈니스 규칙을 분리했기 때문에 코드를 최대한 재사용할 수 있습니다.

모델에서 반환된 데이터는 포맷되지 않으므로 동일한 어셈블리를 다른 인터페이스에서 사용할 수 있습니다. 예를 들어, 많은 데이터는 HTML 로 표현될 수 있지만 Macromedia Flash 와 WAP 로 표현될 수도 있습니다. 이 모델에는 상태 관리 및 데이터 지속성 처리 기능도 있습니다. 예를 들어 세션 기반 쇼핑 카트 및 전자 상거래 프로세스도 플래시 웹 사이트 또는 무선 웹 응용 프로그램에서 재사용할 수 있습니다.

모델은 자체 포함되어 있고 컨트롤러 및 뷰와 분리되어 있기 때문에 응용 프로그램의 데이터 계층 및 비즈니스 규칙을 쉽게 변경할 수 있습니다. MySQL 에서 Oracle 로 데이터베이스를 마이그레이션하거나 RDBMS 기반 데이터 소스를 LDAP 로 변경하려면 모델을 변경하면 됩니다. 모델을 올바르게 구현하면 데이터베이스 또는 LDAP 서버에서 데이터를 가져오는지 여부에 관계없이 뷰에 데이터가 올바르게 표시됩니다. MVC 를 사용하는 한 응용 프로그램의 세 가지 구성 요소는 서로 대립하기 때문에 그 중 하나를 변경해도 다른 두 개는 영향을 받지 않기 때문에 이 디자인 아이디어에 따라 좋은 느슨하게 결합된 구성 요소를 구성할 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 예술명언)

나를 위해, 컨트롤러는 또한 컨트롤러를 사용 하 여 사용자의 요구를 충족 하기 위해 서로 다른 모델과 뷰를 연결할 수 있다는 장점이 있습니다, 그래서 컨트롤러는 응용 프로그램을 구축 하는 강력한 수단을 제공할 수 있습니다. 재사용 가능한 모델과 뷰가 제공됩니다. 컨트롤러는 사용자의 요구에 따라 처리할 모델을 선택한 다음 뷰를 선택하여 처리 결과를 사용자에게 표시할 수 있습니다.

넷째, MVC 의 단점

MVC 의 단점은 MVC 가 명확하게 정의되지 않았기 때문에 MVC 를 완전히 이해하는 것이 쉽지 않다는 것입니다. MVC 를 사용하려면 세심한 계획이 필요합니다. 내부 원리가 복잡하기 때문에 생각할 시간이 필요하다.

MVC 를 응용 프로그램에 적용하는 방법에 대해 생각하는 데 상당한 시간을 할애해야 하며, 모델과 뷰가 엄격하게 분리되어야 하기 때문에 응용 프로그램을 디버깅하기가 어려울 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 모델명언) 각 구성 요소는 사용하기 전에 철저히 테스트해야 합니다. 일단 구성 요소를 테스트한 후에는 거리낌 없이 재사용할 수 있습니다.

내 개인적인 경험에 따르면, 우리가 하나의 앱을 세 부분으로 나눈다면, MVC 를 사용하는 것도 이전보다 더 많은 서류를 관리할 수 있다는 것을 의미한다. 우리의 작업량이 증가한 것 같지만, 그것이 우리에게 가져다 줄 수 있는 이점에 비하면 전혀 아무것도 아니라는 것을 기억하십시오.

MVC 는 소형 또는 중형 어플리케이션에 적합하지 않으며, MVC 를 그다지 크지 않은 응용 프로그램에 적용하는 데 많은 시간을 소비하는 것은 일반적으로 이득이 되지 않습니다.

MVC 의 장점: MVC 는 소프트웨어를 만드는 좋은 방법입니다.

MVC 디자인 패턴은 소프트웨어를 만드는 좋은 방법입니다. 콘텐츠와 디스플레이의 분리와 같은 몇 가지 원칙을 홍보하면 이해하기 쉬울 수 있습니다. 그러나 모델, 뷰 및 컨트롤러의 구성 요소를 분리하려는 경우 응용 프로그램, 특히 응용 프로그램의 아키텍처를 다시 고려해야 할 수 있습니다. MVC 를 받아들이고 그에 따른 추가적인 업무와 복잡성에 대처할 수 있는 능력이 있다면, MVC 는 소프트웨어의 견고성, 코드 재사용 및 구조를 한 단계 끌어올릴 것입니다.

너에게 도움이 되었으면 좋겠다! ~