이것은 사과와 사과 코어의 차이점이 무엇인지 묻는 것과 같습니다. 이 두 아키텍처는 서로를 대체하지 않습니다. 나는 더 정확한보기는 3 계층 아키텍처가 있다고 생각 증대 MVC를.
MVC 아키텍처
모델 : 응용 프로그램에서 "재료"를 나타냅니다. 이 레이어는 나중에 설명 하겠지만 최근 몇 년 동안 약간 퍼지되었습니다.
보기 : 사용자 인터페이스. 사용자가 상호 작용하는 것.
컨트롤러 : 사용자와 모델 계층의 변경에 응답하는 프로그래밍 코드
3 계층 아키텍처
3 계층 아키텍처에서는 서로 다른 책임을 가진 계층이 있습니다.
사용자 서비스 : (또는 일반적으로 "서비스")이 계층은 "모델"계층의 검색 및 수정 조정에 관한 것입니다. 여기에서 복잡한 다단계 작업이 수행됩니다.
비즈니스 계층 : 프로그래밍 코드에 새겨진 비즈니스 규칙을 나타냅니다. 이 계층에는 "비즈니스"가 원하는 것이 시행됩니다.
데이터 액세스 계층 : 영구 데이터 저장소에 액세스하는 하나 이상의 클래스.
MVC와 교차하는 3 계층 아키텍처의 유일한 부분은 "비즈니스 계층"입니다. MVC의 "모델"과 3 계층 아키텍처의 "비즈니스 계층"도 동일한 목표를 달성하려고합니다.
MVC의 "M"이 퍼지되었습니다.
최근 MVC의 "모델"계층이 확장되었습니다. 내가 본 것에서 두 가지, 세 가지 종류의 모델이 있습니다.
도메인 모델 : "비즈니스"가 관심을 갖는 "사물", 즉 비즈니스 도메인을 나타냅니다. 이 클래스는 비즈니스 규칙을 시행하기 위해 해당 데이터에서 작동하는 데이터 및 모든 절차를 보유합니다. 종종 도메인 모델은 데이터베이스의 테이블에 연결됩니다. 이것은 3 계층 아키텍처의 "비즈니스 계층"에 맞는 것 같습니다.
뷰 모델 : 도메인 모델의 데이터를 뷰에보다 적합한 것으로 마사지하는 데 사용되는 클래스입니다. 뷰 모델은 비즈니스 로직을 구현하지 않으며 어떠한 종류의 서비스 나 데이터 액세스도 제공하지 않기 때문에 3 계층 아키텍처의 어느 곳에도 적합하지 않습니다.
비즈니스 모델 : 복잡한 응용 프로그램에서는 비즈니스 로직에서 도메인 모델을 분리해야합니다. 비즈니스 모델에는 비즈니스 규칙을 구현하기 위해 해당 데이터에서 작동하는 데이터 및 절차가 포함되며 도메인 모델은 데이터 만 보유하고 동작은 포함하지 않는 "속성 백"으로 위임됩니다. 도메인 모델은 데이터베이스와 응용 프로그램간에 다른 형태의 데이터 전송 개체가됩니다.
MVC에서 데이터 액세스가 언급 된 곳은 없습니다. 경우에 따라 데이터 액세스가 MVC의 "모델"레이어에 속한다는 것을 알 수 있습니다. 실제로 전체 응용 프로그램을 만들기 위해 3 계층 아키텍처가 MVC와 쌍 을 이루고 있습니다. 하나는 다른 하나를 향상 시키거나 향상시킵니다.
- 모형
- 도메인 모델 (MVC / 3 계층)
- 모델보기 (MVC)
- (선택 사항) 비즈니스 모델 (MVC / 3 계층)
- 조회수 (MVC)
- 컨트롤러 (MVC)
- 데이터 액세스 (3 계층)
- 서비스 (3 계층)
교차점이 있지만 크게 분리되어 있으며 더 큰 시스템의 다양한 구성 요소를 분리하고 분리하는 데 함께 사용됩니다.