2009-08-17 7 views
5

이 게시물은 in MVC/MVP/MVPC where do you put your business logic?과 유사하지만 더 자세한 정보를 찾고 있습니다. 나는 비즈니스 로직의 대다수가 상주해야하는 곳으로 모델을 구입했다. 그러나 모델은 응용 프로그램 상태 관리, 데이터 지속성, 저장소, 데이터 전송 개체 및 기타 다른 것들과 같이 많은 것을 처리합니다.MVC/MVP/MVVM - 비즈니스 논리 구성 방법

난 복잡한 복잡한 비즈니스 규칙이있는 응용 프로그램이 있습니다. 사용자가보기에서 하나의 특정 작업을 수행하려고하면 해당 작업을 허용해야하는지 또는 추가 정보를 묻는 메시지를 표시해야하는지 여부를 확인해야하는 약 20 가지 규칙이 있습니다. 테스트 및 문서화를 지원하기 위해 이러한 비즈니스 규칙을 메소드별로 코딩하고 싶습니다. 이 규칙은 저장소 클래스에 있어야합니까? 어쩌면 리포지토리 위의 서비스 계층에 있을까요? Linq와 같은 SQL, EF 또는 nHibernate와 같은 ORM 솔루션을 사용하고 있다는 것을 명심하십시오.

답변

-2

비즈니스 규칙 인 경우 변경하기 쉽도록 데이터베이스 테이블에 넣을 것입니다.

코드 자체는 비즈니스 규칙에 어리석은 것이며 규칙 컨텐트의 구조 만 신경 쓰지 않습니다.

아래의 의견에 대해 코드 중심의 접근 방식을 다른 이유로 제한해야한다면 괜찮습니다. 단지 프로젝트를 훨씬 비싸게 개발할 수 있습니다.

규칙이 복잡할수록 하드 코딩되지 않고 표 구동 방식을 사용하는 것이 더 도움이됩니다. 당신이 익숙하지 않다면, 어려운 부분은 규칙에 대한 모델로 떠오를 수 있습니다. 모델을 만든 후에는 개발이 간단합니다.

+0

내가 대답을 주셔서 감사합니다,하지만 난 NUnit과 또는 다른 테스트 프레임 워크, 이러한 방법을 테스트 할 수 있기를 원하고 규칙을 넣어 이 데이터베이스를 훨씬 더 어렵게 만들 것입니다. – Andy

+3

또한 이러한 규칙의 복잡성으로 인해 데이터베이스에서 모든 규칙을 관리하는 것이 매우 어려워집니다. – Andy

1

MVP에서는 뷰에서 상태를 유지할 수 있다는 점을 잊지 마세요. 따라서 모델에서 발생하는 일이 줄어 듭니다.

저장소 및 서비스 계층 접근 방식 모두 적용 가능할 수 있습니다. 두 가지 테스트 앱을 사용하여 두 가지를 동시에 탐색 해 보도록 유혹받을 것이라고 생각합니다. 당신이 가면서, 당신은 아마도 하나가 다른 것보다 더 적합하다는 느낌을 갖게 될 것이며, 그 시점에서 당신은 올바른 접근에 집중할 수 있습니다.

낭비되는 노력처럼 들리 겠지만 개발이 본격적으로 시작되면 전환 방식보다 훨씬 적은 노력이 필요할 것입니다.

관련 문제