2010-03-24 7 views
2

처리 할 관련 양식 데이터가 많은 앱을 개발 중입니다. MVC 구조를 사용하고 있으며 관련된 모든 데이터가 양식 제출에서 데이터 유효성 검사와 함께 내 모델에 표시됩니다. 내 컨트롤러 배치에 접근하는 좋은 방법에 대한 조언을 찾고 있는데 - 기본적으로 사용자가 각 단계/카테고리를 진행하는 관리 가능한 카테고리 (신용 카드 앱과 유사)로 분류되는 거대한 형식을 갖게 될 것입니다. 답변을 작성하십시오. 이 모든 양식 범주는 주요 관계/객체와 관련이 있지만 서로는 관련이 없습니다.양식에 대한 MVC 디자인 질문

메인 컨트롤러 클래스에서 각 하위 폼/카테고리를 하나의 메소드로 사용하는 것이 더 낫습니다 (하나의 컨트롤러가 상당히 커지게 만듭니다). 또는 각 카테고리를 주 컨트롤러의 하위 클래스로 나누는 것이 좋습니다 ? 두 번째 방법이 더 깔끔한 것일 수도 있지만 각 카테고리 (모델과 통신하고 오류/성공을 출력 함)에 대해 새로운 방법을 만드는 것과 새로운 컨트롤러를 만드는 것 사이의 차이점을 많이 보려 애 쓰고 있습니다. 동일한 기능을 처리 할 수 ​​있습니다.

미리 안내해 주셔서 감사합니다.

답변

1

필자가 선호하는 방법은 사용자에게 표시되는 모든 양식에 대해 3 중형 폼 컨트롤러 모델을 만드는 것입니다. 사용자가 양식의 '다음'버튼을 클릭 할 때마다 컨트롤러는 체인의 다음 양식으로 제출 요청을 처리하는 백엔드 관리자에게 문의해야합니다. '뒤로'버튼을 클릭하면 부절됩니다. 마지막 폼에는 관리자에게 가서 마지막 정보 비트를 전달하는 '마침'버튼이 있습니다.

이렇게하면 상속을 피하고 코드를 더욱 강력하게 만들고 양식을 독립적으로 테스트 할 수 있습니다.

+0

환호성 Boris, 그 접근 방식도 의미가 있습니다. 각 모델은 데이터베이스 관계를 나타내는 ORM을 사용하지만, 각 카테고리/하위 폼 내에서 둘 이상의 모델과 상호 작용할 가능성이 높으므로이 경우 접근 방법이 유용할까요? 내가 잘못 이해 한 경우에 사과 – kenny99

+0

환호 케니, 모델과 모델이 있습니다. MVC의 모델은 뷰의 상태, 즉 양식을 백업하는 객체입니다. 당신이 말하는 모델은 울타리의 비즈니스 로직 측면에있는 도메인 객체 모델입니다. 그것은 가게를 갖는 것과 같습니다. 주식 및 금융 관리를 위해 다른 관용구를 사용하여 고객에게 제품/서비스를 제공 할 것입니다. –

1

필자가 선호하는 것은 컨트롤러 하나로 유지하는 것입니다. 응용 프로그램/양식을 한 곳에서 채우는 데 필요한 모든 관련 프로세스를 유지하지만, 내가 말하는 방식이 "방대한"것인지는 잘 모르겠습니다. 당신이 그것을 분리하기로 결정한다면, 나는 주 컨트롤러로부터 서브 클래스로 벗어나지 않을 것이지만, 아마도 소수의 독립적 인 컨트롤러를 만들 것이다.

+0

감사합니다. Ryan. Massive는 과장되었을 지 모르지만 아마도 약 10 개의 카테고리/메소드가있을 것입니다. 그래서이 모든 것을 하나의 컨트롤러에 저장하여 나쁜 디자인인지 여부를 불편하게 느끼기 시작했습니다.하지만 말했듯이 하나의 양식의 일부입니다. – kenny99

+0

컨트롤러는 하나의 "물건"에 대한 작업을 처리하기위한 것입니다. 양쪽 방향에 찬부 양론이 있지만 정말로 갈 길이나 잘못된 길이 있는지 나는 모른다. –