MVC 디자인에 대한 설명을 읽었을뿐 아니라 다음과 같은 질문을 던졌습니다. 저는 Android 개발자 (중학교)이므로 코드를 더 명확하게 만들고 싶습니다. 그래서 MVC를 사용해야합니까? 그리고 모든 활동에는 자신의 모델이 있어야합니까? 그것에 대한 좋은 튜토리얼이 있습니까? 고맙습니다.모든 활동에는 자체 모델이 있어야합니까?
답변
이미 구현되었습니다. MVC pattern on Android
당신은 안드로이드 MVC
미리 제작 된 바와 같이, 아무것도 할 필요가 없습니다MVC 더 (활동과 모델 사이의 1 대 1의 관계처럼) 일을 특정 방법보다는 아이디어의 일종이다. 아이디어는 모델, 뷰 및 컨트롤러를 분리하여 물건 이이되도록 만듭니다.
Android에서는 둘 이상의 활동이 단일 모델을 참조 할 수 있습니다 (예 : 검색 가능한 집 목록이있는 활동, '집 수정'활동 및 해당 활동의 점으로 표시 한지도). 좌표). 그래서 두 번째 질문에 대답하십시오 : 아니오, 그들은 자신의 모델을 가질 필요가 없습니다.
네, 그렇다면 MVC를 사용해야합니다. 모델을 실제 응용 프로그램과는 별도의 엔티티로 생각하고 모델의 "사용자"로서의 활동을 생각해보십시오.
Android에서는 MVP (모델,보기, 발표자) 패턴이 전반적인 시스템 아키텍처와보다 직접적인 상관 관계가 있음을 발견했습니다. 활동은 MVP 설정에서 자신의 이벤트를 관리하고 자신의 모양을 제어하는 뷰를 구성합니다. 발표자는 모델과 뷰 사이의 촉진자 역할을하여 뷰에서 요청할 때 데이터를 제공합니다. 필요에 따라 발표자가 서비스 일 수도 아닐 수도 있습니다. 보기/모델 비율은 어느 시점에서든 화면에 표시하려는 내용에 따라 다릅니다. 안드로이드가 휴대 전화에서만 실행될 때 활동과 모델 사이에 일대일 상관 관계가있는 것이 당연했습니다. 이제 정상적인 경우는 모델과 파편 사이에 일대일 상관 관계가있는 것입니다. 그러면 파생물이 적절한 파편을 보여줌으로써 마샬링됩니다.
조각이 툴박스의 도구이기 때문에 MVC를하고 싶다면, 특히 RoboGuice에 포함 된 것과 같은 잘 발달 된 이벤트 시스템을 사용하면 이전보다 훨씬 쉬워졌습니다. 뷰로의 파편 및 컨트롤러로의 활동 - 모델에 대한 뷰의 순서 지정, 모델에서 데이터 제공 및 다른 컨트롤러로의 전환 처리.
패턴 선택은 필요에 따라 달라집니다. 응용 프로그램이 서비스 중심으로 구동되는 경우 MVP가 더 좋은 방법 일 것입니다. 그러나 응용 프로그램이 데이터베이스에 대한 단순한 클라이언트 일 경우 MVC가 더 쉬울 수도 있습니다. 그것은 당신에게 모든이야 :)
MVP에 대한 리소스 '시작을 얻을'http://www.jamespeckham.com/blog/10-11-21/MVP_on_Android.aspx
- 1. 수신 활동에는 해당 SendReply 활동이 있어야합니까?
- 2. 모델이 컬렉션을 알고 있어야합니까?
- 3. 클래스에 자체 컬렉션이 있어야합니까?
- 4. GUI에 자체 테스트가 있어야합니까?
- 5. DLL에 자체 구성 파일이 있어야합니까?
- 6. 모든 VCL 양식에 스레드 용 자체 루프/펌프가 있어야합니까?
- 7. 레일즈 - 객체의 유형이 자체 모델에 있어야합니까?
- 8. MVC 프로그래밍에서 모델이 얼마나 멀리 있어야합니까?
- 9. TSQL에서 SET 명령이 자체 배치에 있어야합니까?
- 10. TFS 앱이 자체 전용 서버에 있어야합니까?
- 11. EF의 DbContext에 모든 테이블이 있어야합니까?
- 12. 모든 스레드가 자체 자동 풀이 필요합니까?
- 13. 여러 클라이언트가 프로젝트 사본을 하나씩 갖고 있거나 모든 클라이언트가 자체 사본을 가지고 있어야합니까?
- 14. 다른 페이지에 포함 된 페이지에 자체 스크립트가 있어야합니까?
- 15. 디자인 모델의 모든 클래스가 도메인 모델에 있어야합니까?
- 16. main()은 핸들러를 포함하는 모든 스크립트에 있어야합니까?
- 17. OOP 모든 속성에 getter 및 setter가 있어야합니까?
- 18. 메소드의 가능한 모든 분기에는 별도의 junit이 있어야합니까?
- 19. 모든 테이블에 <tbody>이 있어야합니까?
- 20. mysql db의 모든 테이블에 동일한 인코딩이 있어야합니까?
- 21. 모든 보석에는 자체 레이크가 있습니까?
- 22. 모든 장고 모델이 특정 클래스에서 상속되도록 만들기
- 23. Magento 카테고리 모델이 모든 데이터를로드하지 않습니다.
- 24. 모델이
- 25. 프로젝트 내의 모든 장고 앱은 자신의 urls.py가 있어야합니까?
- 26. HTTPost에 모델이 채워지지 않음
- 27. 상태 표시 줄의 높이를 변경하는 iPhone 활동에는 어떤 것이 있습니까?
- 28. '콜백'이 있어야합니까?
- 29. 라이센스가 있어야합니까?
- 30. MVC - 모델이 컨트롤러와 다른 클래스 여야합니까?
대신 MVC의 안드로이드 응용 프로그램이 MVP 또는 느슨한 결합을 구현해야합니다. 안드로이드 애플리케이션에서 mvp의 예제와 사용상의 이점을 찾을 수 있습니다. @http : //kjthumar.blogspot.com/ –