2008-08-25 7 views

답변

4

:

Model-view-controller (MVC)는 소프트웨어 공학에서 사용되는 아키텍처 패턴입니다. 패턴을 성공적으로 사용하면 비즈니스 로직을 사용자 인터페이스 고려 사항에서 분리 할 수 ​​있으므로 응용 프로그램의 시각적 모양이나 기본 비즈니스 규칙을 다른 것에 영향을주지 않고 수정하는 것이 더 쉬운 응용 프로그램을 만들 수 있습니다. MVC에서 모델은 응용 프로그램의 정보 (데이터)와 데이터를 조작하는 데 사용되는 비즈니스 규칙을 나타냅니다. 보기는 텍스트, 체크 상자 항목 등과 같은 사용자 인터페이스의 요소에 해당합니다. 컨트롤러는 키 스트로크 및 마우스 이동과 같은 사용자 동작 모델에 대한 통신과 관련된 세부 정보를 관리합니다.

따라서 모델은 응용 프로그램과 비즈니스 규칙을 보유합니다.

4

나는 Josh와 완전히 동의합니다. 그러나 컨트롤러와 모델간에 일종의 유효성 검사 레이어를 만들면 대부분의 구문 검증이 모델에 도달하기 전에 데이터에 대해 수행 될 수 있습니다. 예를 들어

,

등 날짜 형식, 양 형식, 필수 필드를 검증 할 검증 층 ... 그래서 모델은 순수 X 금액보다 커야합니다 같은 비즈니스 검증에 집중할 것

y 금액.

0

MVC에 대한 경험은 지금까지 완전히 레일로 구성되어 있습니다.

레일즈는 모델에서 100 % 유효성 검사를 수행합니다.
이 부분은 대부분 잘 작동합니다. 10 번 중 9 번은 필요한 모든 것입니다.

그러나 양식에서 제출하는 항목이 모델과 올바르게 일치하지 않는 부분이 있습니다. 몇 가지 추가 필터링/재배치 등이있을 수 있습니다.

내가 발견 한 이러한 상황을 해결하는 가장 좋은 방법은 기본적으로 모델 개체처럼 작동하지만 양식 데이터와 일대일로 매핑하는 인위적 모델 개체를 만드는 것입니다. 이러한 인위적인 모델 객체는 실제로 아무 것도 저장하지 않으며 유효성 검사가 첨부 된 데이터의 양동이에 지나지 않습니다. 데이터가 그 들어간 (및 유효)은 일반적으로 직접 실제 모델을 통해 전송할 수있는 매우 간단 걸음되면
(레일) 그런 일의 예는 ActiveForm

입니다.

0

기본 구문 검사는 모델에 대한 사용자 입력을 변환 할 때 컨트롤에 있어야합니다. 모델은 실제 데이터 유효성 검사를 수행해야합니다.