MVCS-모델보기 컨트롤러 서비스
나는 오랜 시간 동안 MVC를 사용하여 "에 대해 들어 봤는데 서비스 (Java 웹 프로젝트의 예를 들어)"레이어 그리고이 있는지 궁금 봤는데 실제 아키텍처 패턴 I에 대해 많은 정보를 찾을 수 없습니다 부여 그것.
MVCS의 아이디어는 컨트롤러 에있을 수있는 모든 비즈니스 로직을 캡슐화하기 위해 컨트롤러와 모델 사이에 서비스 계층 을 갖는 것입니다. 이렇게하면 컨트롤러가 실행을 전달하고 제어 할 수 있습니다. 또한 코드를 복제하지 않고도 많은 컨트롤러 (예 : 웹 사이트 및 웹 서비스)에서 서비스를 호출 할 수 있습니다.
서비스 계층은 많은 방법으로 해석 될 수 있지만 일반적으로 핵심 비즈니스 처리 로직이 있고 MVC 아키텍처 아래에 있지만 데이터 액세스 아키텍처 위에 있습니다.
예를 들어 완전한 시스템의 계층은 다음과 같을 수 있습니다.
- 뷰 레이어 : MVC 프레임 워크 및 선택한 코드
- 서비스 계층 : 컨트롤러는이 계층의 개체를 호출하여 모델 또는 기타 요청을 가져 오거나 업데이트합니다.
- 데이터 액세스 개체 : 서비스 계층이 필요한 데이터를 가져 오거나 업데이트하기 위해 호출하는 추상화입니다. 이 계층은 일반적으로 데이터베이스 또는 다른 시스템 (예 : LDAP 서버, 웹 서비스 또는 NoSql 유형 DB)을 호출합니다.
그러면 서비스 계층은 다음을 담당합니다.
- 다양한 데이터 소스 (또는 데이터 액세스 개체)에서 '모델'을 검색하고 생성합니다.
- 다양한 리포지토리 / 리소스에서 값 업데이트.
- 애플리케이션 별 로직 및 조작 등을 수행합니다.
MVC에서 사용하는 모델은 서비스에서 제공 될 수도 있고 제공되지 않을 수도 있습니다. 서비스가 제공하는 결과를 매체 (예 : 웹 페이지)에 더 구체적인 모델로 조작 할 수 있습니다.
나는 다른 곳에서 이것에 대한 참조를 보지 않고이 패턴을 직접 생각하고 Google을 검색하고 여기에서 질문을 찾았습니다. :)
오늘날에도 그에 대해 이야기하거나 게시하는 기관은 많지 않습니다.
뷰 컨트롤러 서비스 패턴.
다른 사람들도 똑같이 생각하고 있음을 알려주고 위의 이미지는 그것이 어떻게되어야 하는지를 보는 방법입니다.
현재 저는 현재 작업중인 프로젝트에서 사용하고 있습니다.
위 이미지의 각 레이어가있는 모듈에 자체 자체 포함 된 모듈이 있습니다.
서비스 계층은 "클라이언트"측 컨트롤러가 클라이언트에 대해 수행하고 "서비스"가 서버에 대해 수행하는 작업에서 "커넥터" "중간자" "서버 측 컨트롤러"입니다.
즉, 클라이언트 측 "컨트롤러"는 "서비스"(서버 측 컨트롤러) 와만 "대화"합니다.
컨트롤러 ---> 요청 및 <----- 서비스 계층에서 수신
서비스 계층은 정보를 필요로하는 서버 측의 계층에 정보를 가져 오거나 제공합니다.
서비스 자체는 아무것도하지 않고 서버 계층을 필요한 항목과 연결합니다.
다음은 코드 샘플입니다.
참고 URL : https://stackoverflow.com/questions/5702391/mvcs-model-view-controller-service
'Programing' 카테고리의 다른 글
Django, 모델 메서드에서 쿼리 필터링 (0) | 2020.11.25 |
---|---|
여러 인수가있는 필터와 장고의 체인 필터의 차이점 (0) | 2020.11.25 |
브라우저는 Ajax 요청 후 얼마나 기다려야합니까? (0) | 2020.11.25 |
함수를 래핑하기 전에 Python 데코레이터를 패치 할 수 있습니까? (0) | 2020.11.25 |
express.js에서 'next / next ()'를 이해하는 데 어려움을 겪습니다. (0) | 2020.11.25 |