2012-10-23 2 views

답변

0

이것은 일반적인 질문입니다. 응용 프로그램을 만드는 방법을 알려주기가 어렵습니다. 그건 그렇고, 약간의 (그리고 간단한) 설명이 이것 일 수 있습니다.

컨트롤러는 응용 프로그램의 논리를 구현해야하며 응용 프로그램의 특정 기능을 "제어"해야합니다. 뷰는 컨트롤러가 사용자에게 보여주고 싶은 것을 보여줘야합니다.

어떤 종류의 논리 (사용자 검사/데이터로드 등)로 무언가를 만들고 싶다면 컨트롤러를 만들어야합니다. 사용자에게 뭔가를 보여주고 싶다면보기를 만들 수 있습니다.

컨트롤러의 차이점은 응용 프로그램에 따라 다르며 하나의 종류의 논리를 작성해야합니다. 그렇지 않으면 다른 기능을 가진 큰 응용 프로그램이있는 경우 N 개의 컨트롤러를 만듭니다.

0

다음은 규칙 이상의 가이드 라인입니다.

일부 매개 변수에 따라 코드를 모듈화하려면 새로운보기 컨트롤러를 만들어야합니다 (기능에 따라 다름). 예. DashboardViewController, SettingsViewController

DashboardViewController 안에는 많은 일들이 진행될 수 있습니다. 각각은 view이 필요할 수도 있습니다.

0

나는 이것이 객관적인 것보다 주관적인 것이라고 생각한다. 한 프로젝트에서 필자는 탭 탐색을 변경해야 할 때마다 새 컨트롤러를 만들거나 탭을 정의하는 onInit 메서드에서 if/else의 엉망으로 끝낼 것입니다.

다른 경우 논리 그룹인지 묻는 것만 큼 간단 할 수도 있습니다. 예 : 사용자 추가/편집/제거를 관리하는 UserController가 있습니다. 로그인/로그 아웃/forgotPassword에 해당 컨트롤러를 사용해야합니까, 아니면 AuthController를 만들어야합니까? AuthController가 로그인을 시도하는 동안 UserController에 대한 보안은 admins 여야하기 때문에 개인적으로 필자는 AuthController로 분리 할 것입니다. 그런 다음 사용자가 로그인하면 자신의 프로필에 대해 UserController를 수행 할 것인지 아니면 다시 ProfileController를 만들 것인지 권한 차이가 있기 때문에 수행하십시오. 로그인 한 모든 사용자는 자신의 프로파일을 관리 할 수는 있지만 그것이 내 UserController에 액세스해야한다는 것을 의미하지는 않습니다.

그러나 add/edit/delete/profile/login/logout/forgotPassword보기를 하나의 컨트롤러에 넣고보기 단위로 권한을 처리하면 "틀린"것은 아닙니다. 모델에서 비즈니스 로직을 컨트롤러 밖으로 유지하고 가능한 한 많은 로직을 뷰에서 유지하는 한, 커브와 리팩토링을 앞두고 있습니다. 너무 어려워.

로드하는 메소드에 따라 초기화하는 onInit에서 많은 if/else 작업을 수행하는 경우 ... 별도의 컨트롤러를 만드는 것이 좋습니다.

관련 문제