문제

누가 책임


는 책임을 시작과 마무리 작업 단위에서 MVC 건축?

도움이 되었습니까?

해결책

컨트롤러의 책임이 아니며 위반합니다. SRP. 컨트롤러는 UOW에 대해 전혀 알지 못해야합니다. 웹에서 서버에 대한 요청 당 하나의 UOW가 일반적으로 사용됩니다. 이 경우 UOW는 요청이 끝날 때 폐기되어 요청이 시작된 후 어딘가에서 시작해야합니다 (이상적으로는 UOW의 시작이 게으른 것이 져야합니다). 이를 수행하기 가장 좋은 곳은 Application_endRequest 및 Application_BeginRequest 처리기를 사용하여 Global.Asax (또는 HTTPapplication 클래스)입니다.
이것은 IOC 프레임 워크 (내가 가장 좋아하는 Is Windsor)로 쉽게 달성 할 수 있습니다. 이 질문 구현 세부 사항.

다른 팁

컨트롤러. 이것은 컨텍스트를 얻으므로 작업 단위를 시작하고 완료 할 수 있습니다. 예를 들어 요청 당 nhibernate 세션은 요청이 시작되고 완료된시기를 알아야하므로 요청을 제공하려면 컨텍스트가 필요합니다.

나는 느슨하게 결합 된 건축물을 믿는 사람입니다. 내 컨트롤러는 리포지토리, 컨텍스트 또는 단위 - 작업에 대해 아무것도 모릅니다. 컨트롤러가 호출하는 서비스 계층 (올바른 용어는 확실하지 않음)을 만들었습니다. 그런 다음이 서비스는 리포지토리 (DLL)와 작동하여 모든 데이터를 지속합니다.

로 zihotki 말할 것을 위반하 SRP 는 경우 이에 책임 컨트롤러입니다.이 데이터를 조작을 중심의 패턴,그리고 이와 같이하지 않아야에 대한 관심 컨트롤러...를 만드는 것이 그 위반을 두:하나 SRP 및 anothrt 에 대한 SoC 원칙으로 합니다.

사람에 대한 책임을 가지고,뭔가를 정의하여 귀하의 건물입니다.이 StartRequest/발생합니다 제 것 솔리드 충분하다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top