안드로이드 mvp 패턴 예제

MVP 패턴을 사용하여 Android 활동 레크리에이션을 어떻게 처리합니까? 활동은 남은 상태에서 다시 만들어야 합니다. 예를 들어 github 예제 프로젝트의 LoginActivity가 현재 테스트 중일 때 Android 장치가 회전하는 경우 사용자 자격 증명이 올바른지 테스트하면 진행률이 손실됩니다. 그렇기 때문에 개발자들은 안드로이드의 앱 개발을 위해 MVC, MVP 및 MVVM과 같은 다양한 아키텍처 패턴에 의존합니다. 또한 Android 활동은 UI 및 데이터 액세스 메커니즘에 밀접하게 결합되어 있습니다. 따라서, 활동이나 조각에 컨트롤러와 뷰 로직을 모두 배치하는 함정에 빠지기 쉽다. 그러나 이렇게 하면 밀접하게 결합된 구성 요소가 생성되어 리팩터링 및 변경이 더 어려워집니다. 귀하의 회신에 대한 확인 감사합니다. 앱에서 EventBus 라이브러리를 사용하고 있습니까? 비즈니스 논리를 프레젠테이션 계층에서 EventBus 패턴과 분리하는 아이디어는 어떻습니까? 보기 계층이 활성화되지 않은 시나리오(앱이 백그라운드에 있음)와 서비스에서 알림 업데이트가 필요한 경우(알림 트레이에서 다운로드 진행률 과 같은) 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 알림 업데이트는 UI 작업이므로 서비스 자체에서 알림을 생성하고 표시하는 것이 좋습니다. 관찰자 패턴 또는 이벤트 버스는 이벤트를 듣기 위해 활동이나 조각이 다른 쪽 끝(보기 레이어)에서 살아 있다면 괜찮았을 것입니다. 따라서 이 경우 도메인 계층(서비스)에서 UI 구성 요소를 만들고 표시하면 MVP 규칙이 중단됩니다. 모델보기 보기 모델 (MVVM) 안드로이드 데이터 바인딩과 함께 어떤 초보 안드로이드 개발자에게 물어 그들은 안드로이드를 테스트하는 것이 테스터에 대한 고통의 더 많은 이유를 말할 것이다. Android에서 앱을 개발하는 일반적인 패턴은 단일 활동/조각 클래스에서 수천 줄의 코드를 작성하는 것입니다.

그러나 앱이 발전하고 더 복잡해질 때 동일한 종류의 구현이 버그가 되는 경향이 있습니다. 감사합니다,하지만 당신은 “단검을 사용하여 주입”에 대한 코드 예가 있습니까 (4 월 18, 2014의 코멘트 참조)? MVP는 현재 안드로이드 커뮤니티가 선호하는 패턴에 있습니다. “이 중 일부는 의미가 있습니다. 하지만 이러한 MVP는 어떻게 만들어지나요?” MVP의 추상적 인 아이디어는 지금까지 제시된다, 이들의 창조의 생각은 그것에 더 많은 주스를 추가합니다. 당연히 이러한 구성 요소는 Android 프레임워크에 존재하지 않습니다. 우리가 몇 가지 생각을 넣어 경우, 보기는 밀접 하 게 활동 및 조각관련 구성 요소, 그리고 이들은 안 드 로이드의 핵심 구성 요소. 코어 레이어에는 경계가 인터페이스입니다: – 인터액터는 발표자로부터 요청(트랜잭션)이 이루어질 때 이를 구현합니다. -또는 인터액터는 응답이 이루어질 때 이를 트리거합니다(관계가 있음).