2011-07-17 6 views

답변

8

달성하려는 목표에 따라 디자인이 결정됩니다. 모델이 단일 서비스의 컨텍스트에서만 의미가 있거나 모델이 서버의 모든 데이터에 대한 액세스를 제공하도록하려는 경우 서버에 대한 연결을 데이터 모델에 구축하십시오. 예를 들어 Twitter 나 Flickr와 같은 서비스 용 클라이언트를 구축하는 경우에는이 방법이 유용 할 수 있습니다.

반면에 서버에서 파일을 가져 오는 것이 끝나면 컨트롤러에서 통신을하는 것이 좋습니다. 컨트롤러는 응용 프로그램의 특정 동작에 대해 재사용 성이 떨어지고 커스터마이징되는 경향이 있습니다. 모델 밖에서 데이터가 나오는 위치를 구체적으로 유지하면 모델을 더 재사용 할 수 있습니다. 또한 테스트하기 쉽습니다. 로컬 파일을 읽고 모델에 데이터를 저장하는 테스트 코드를 작성할 수 있습니다. 가게 특별히 가져올 수 있도록 설계되었습니다 (http://www.bignerdranch.com/book/ios_programming_the_big_nerd_ranch_guide_rd_edition_)

: "큰 얼간이 목장 가이드 IOS 프로그래밍"

+0

이것은 내가 얻은 것입니다. +1 – Nektarios

+0

이것은 결정을 내릴 수있는 유일한 이유는 아니지만 컨트롤러에서 클라이언트 - 서버 통신을 할 때 [통지] (https : //developer.apple.com/library/ios/documentation/general/conceptual/devpedia-cocoacore/MVC.html) 메커니즘을 모델에서 컨트롤러로 가져올 수 있습니다. – Drux

0

좋은 질문입니다. 가장 좋은 방법은 컨트롤러를 사용하는 것입니다. 왜냐하면 모델이 제대로 작동하기 위해 다른 모델을 필요로하지 않도록 모델을 분리하기 때문입니다. 나는 모델에서 그것을 수행함으로써 "적절한 mvc"를 위반하지 않는다고 생각합니다.

0

모델에 넣고 싶습니다. 당신이 할 일은 데이터에 대한 모델을 조사하는 것입니다. 그런 다음 모델은 내부 데이터 저장소 또는 외부 데이터 저장소 (서버와 같은)에서 가져온 방법을 처리합니다.

0

하나의 접근법은 저장소 패턴을 사용하는 것입니다. 이렇게하려면 모델 폴더에 리포지토리 개체를 만들고 데이터베이스 관련 메서드를 모두 저장합니다. 컨트롤러는 저장소 클래스를 호출하여 데이터를 가져옵니다. 이를 통해 데이터베이스 액세스 메소드에서 실제 모델 객체를 분리 할 수 ​​있습니다.

0

은 내가 아론 힐레 가스의 책에서 발견 MVCS 패턴 (모델 - 뷰 - 컨트롤러 - 스토어)를 사용 서버, 로컬 파일, 영구 컬렉션, 데이터베이스 등에서 오는 데이터.

매우 진화하는 응용 프로그램을 만들 수 있습니다. 예를 들어 웹 서비스를 기반으로 애플리케이션을 구축 할 수 있으며 데이터를 유지하려는 날에는 컨트롤러에서 한 줄의 코드를 수정하지 않고도 상점을 수정해야합니다.

그것은 저장소 패턴 (http://msdn.microsoft.com/en-us/library/ff649690.aspx) (CF BobTurbo의 대답)

0

나는 개인적으로 DAO, 또는 데이터 헬퍼 클래스를 만들 것 같은 많은입니다. 상황이 더 복잡 해지면 객관적인 C에서 엄격한 MVC를 따르는 것은 매우 어렵습니다. 그러나 그것을 모델이나 VC에 두는 것은 잘못이 아닙니다.

관련 문제