“Android에서 MVC를 적용하는 방법”과 같은 질문에 대해 StackOverflow를 검색하면 Android에서 활동이 보기와 컨트롤러 모두라고 가장 인기있는 답변 중 하나가 명시되어 있습니다. 돌이켜 보면, 이것은 거의 미친 소리! 그러나 그 시점에서 주요 강조는 모델을 테스트 할 수 있도록하고 일반적으로 뷰 및 컨트롤러에 대한 구현 선택은 플랫폼에 의존했다. 이 예제에서는 수동 모델에 대해 작업합니다. 이 게시물의 나머지 단계는 MVC, MVP 및 MVVM 패턴을 순서대로 진행합니다. 각 섹션의 시작 부분에서 우리는 주요 구성 요소와 책임의 일반적인 정의로 시작하고 그 우리의 게임에 적용되는 방법을 참조하십시오. 안드로이드 프로젝트에 MVC, MVP 및 MVVM에 대한 간단한 가이드 모델 클래스는 안드로이드 클래스에 대한 참조가 없기 때문에 단위 테스트에 간단합니다. 컨트롤러는 Android 클래스를 확장하거나 구현하지 않으며 View의 인터페이스 클래스에 대한 참조가 있어야 합니다. 이러한 방식으로 컨트롤러의 단위 테스트도 가능합니다. 하위 디렉터리를 만들 폴더를 마우스 오른쪽 단추로 클릭하고 새 > 패키지를 선택합니다. “컨트롤러”와 같이 설명이 있는 이름을 지정합니다. 파일을 이 새 디렉터리(예: 활동 파일)로 이동하고 리팩터링 단추를 클릭하여 유효성을 검사합니다. 안드로이드 스튜디오는 당신의 선택을 확인하도록 요청합니다 : 리팩터 링 작업을 클릭합니다.
우리가 행동에 각 패턴을 볼 수 있도록, 우리는 간단한 틱 택 – 발가락 게임을 사용합니다. 1 년 전, 현재 안드로이드 팀의 대부분이 업데이에서 작업을 시작했을 때, 응용 프로그램은 우리가 원하는 강력하고 안정적인 응용 프로그램이되는 멀리했다. 코드가 왜 그렇게 나쁜지 이해하려고 노력했고, UI의 지속적인 변경과 필요한 유연성을 지원하는 아키텍처의 부재라는 두 가지 주요 원인을 발견했습니다. 이 앱은 이미 6개월 만에 네 번째 재설계되었습니다. 선택한 디자인 패턴은 모델 뷰 컨트롤러인 것처럼 보였지만 이미 “돌연변이”였으며, 이는 어떻게 해야 할지와는 거리가 멀습니다. 모델 뷰-컨트롤러 패턴이 무엇인지 함께 살펴보겠습니다. 그것은 수년에 걸쳐 안드로이드에 적용 된 방법; 테스트 가능성을 극대화할 수 있도록 어떻게 적용해야 하는지; 그리고 그 장점과 단점 중 일부. 뷰가 컨트롤러와 모델 모두에 종속된다는 점을 감안할 때 UI 논리를 변경하려면 여러 클래스에서 업데이트가 필요할 수 있으므로 패턴의 유연성이 저하될 수 있습니다. 실제로 MVP와 MVVM의 더 많은 예를 보고 싶다면 Google 아키텍처 청사진 프로젝트를 확인하는 것이 좋습니다.
적절한 MVP 구현에 대해 더 깊이 탐구하는 많은 블로그 게시물도 있습니다.