컨트롤러가 모델 객체에 직접 할당해야합니까, 아니면 모델에게 무엇을해야하는지 말할까요?MVC에서 컨트롤러의 제한은 무엇입니까?
답변
제어기는 두 전통적인 역할을 가지고 동작의 모델을 통지하는 입력 인터페이스로부터 이벤트 (등록 핸들러 또는 콜백)
운반
- 또는 발생하지 않을 수를 모델의 상태
그것은 데이터 유효성 검사를 수행하지 않습니다에 변화를 그 모델에 않으며 어떤 정보가 표시되는 방법에 말을 가지고있다.
모델 서비스는 컨트롤러의 존재를 알아야 할 필요가 없으므로 컨트롤러는 모델 서비스를 활용하여 뷰가 필요로하는 것을 수행 할 수 있습니다.
이는 응용 프로그램의 범위에 따라 크게 달라집니다. 상대적으로 빠르거나 더러 우면 over-engineering에는 아무런 의미가 없습니다. 물론 컨트롤러가 모델 객체와 대화 할 수 있습니다. 반면에, 어떤 이유에서 건 더 "enterprisey"가 필요한 경우 MVC와 함께 사용하는 좋은 패턴은 소위 "비즈니스 위임 (Business Delegate)"입니다. 여기서 하나 이상의 모델 객체에 대해 하나 이상의 메소드로 거친 메소드를 작성할 수 있습니다. 예를 들어 객체를 삭제 한 다음 해당 객체가없는 새로 고침 된 목록을 반환 할 수 있습니다. 이 레이어는 두 가지 이점을 제공합니다. 하나는 모델 객체에 사용되는 ORM 시스템과 컨트롤러를 분리합니다. 또한, 다시 throw하는 대신 발생했을 수있는 예외를 최종적으로 건설적으로 처리해야하는 계층입니다.
저는 컨트롤러가 모델 객체를 다루어야한다고 생각하지 않습니다.
컨트롤러가 실제로 UI 계층의 일부라고 생각하는 경향이 있습니다. 나는 컨트롤러와 앱의 나머지 부분 사이에 서비스 레이어를 삽입하는 것을 선호한다. 웹 티어는 HTTP 요청을 받아들이고 요청 객체의 매개 변수를 서비스 인터페이스에서 처리 할 수있는 객체로 비 정렬 화하고 응답을 다시 전달하도록 정렬합니다. 트랜잭션, 작업 단위 및 모델 및 지속성 오브젝트를 다루는 모든 작업은 서비스에 의해 수행됩니다.
이 접근 방식은보다 서비스 지향적입니다. 서비스를 사용자 인터페이스와 분리하여 여러 클라이언트가 동일한 서비스를 재사용 할 수있는 가능성을 열어줍니다. 따라서 서비스에 대한 요청을 계층 적으로 "얇게"만들 수 있으므로 REST, EJB 또는 CORBA 등 SOAP 서비스를 쉽게 전환 할 수 있습니다.
- 1. MVC에서 컨트롤러의 다른 메서드에서 다른보기를 반환하는 방법
- 2. ASP.NET MVC에서 폴더와 컨트롤러의 이름이 같은 방법은 무엇입니까?
- 3. OData의 쿼리 제한은 무엇입니까?
- 4. IBAction의 시간 제한은 무엇입니까?
- 5. WCF의 내부 제한은 무엇입니까
- 6. codepad.org의 펄 러너 제한은 무엇입니까?
- 7. Android 프로그램의 크기 제한은 무엇입니까?
- 8. 가상 트리보기의 스크롤 제한은 무엇입니까?
- 9. 최대 파일 수 제한은 무엇입니까?
- 10. JavaMail에서 수신자의 제한은 무엇입니까? 얼마나?
- 11. 스프링 컨트롤러의 ServletWrappingController는 무엇입니까?
- 12. 부모보기 컨트롤러의 버튼을 누르면보기 컨트롤러의 메소드를 호출하는 방법은 무엇입니까?
- 13. 데이터베이스의 질문에 대한 적절한 제한은 무엇입니까?
- 14. Google 데이터 API : 확장 속성의 제한은 무엇입니까?
- 15. ASP.NET MVC 3에서 일일 통화량 제한은 무엇입니까?
- 16. RxTx 라이브러리에 대한 라이센스 제한은 무엇입니까
- 17. 플래시에서 비트 맵의 픽셀 제한은 무엇입니까?
- 18. 자바 스크립트 속성의 길이 제한은 무엇입니까?
- 19. 풍선 메시지의 최소 시간 제한은 무엇입니까?
- 20. javafx scatter plot의 성능 제한은 무엇입니까?
- 21. Google에서 API V2를 번역하는 속도 제한은 무엇입니까?
- 22. Amazon S3의 객체 ID에 대한 제한은 무엇입니까?
- 23. Google의 Suggest API에 대한 쿼리 제한은 무엇입니까?
- 24. CPU 당 스레드의 실질적인 제한은 무엇입니까?
- 25. javascript [node] .nodeValue 필드의 크기 제한은 무엇입니까?
- 26. SQL에서 BIGINT 필드 유형의 제한은 무엇입니까?
- 27. DSN에 액세스 할 때의 액세스 제한은 무엇입니까?
- 28. preg 기능의 최대 글자 수 제한은 무엇입니까?
- 29. 리눅스 소켓에 대한 연결 시간 제한은 무엇입니까
- 30. asp.net mvc 컨트롤러의 수명이란 무엇입니까?
보다 일반적으로 컨트롤러는보기 및 모델을 조정합니다. 모델에서 변경 사항을 호출하면 간접적으로 변경됩니다. 예 : 외관 방법을 통해. 그 목적은 사용자 인터페이스에서 비즈니스 로직을 분리하는 것입니다. –
이런 의미에서, 컨트롤러 메소드에서 웹 사용자 입력에 대한 모델 바인딩의 아이디어는 권장되지 않습니까? – zsharp