MVP (Model-View-Presenter)는 GUI 애플리케이션을위한 잘 알려진 디자인 패턴입니다. Android의 경우 일반 Java 모듈에서 비즈니스 로직을 구현하면 Android 에뮬레이터 없이도 테스트가 가능합니다. 때문에 안드로이드 응용 프로그램의 GUI에 대한 특별한 요구 사항의 안드로이드에 패턴을 구현안드로이드에서 Model-View-Presenter 구현상의 어려움
그러나, 나는 데 어려움 : 활동이 어느 시점 (걸려 오는 전화에 손상 될 수 있습니다
는 사용자가 홈 버튼을 누르면 ...), 그리고 그것을 다시 만들 때 그것이 남겨진 때와 똑같은 상태에 있어야합니다. 이것은 다른 대부분의 GUI 응용 프로그램과는 다릅니다.
활동은 여러 라이프 사이클 상태를 거칠 수 있습니다. 활동의 UI를 수정해서는 안되는 경우 일시 중지 될 수 있습니다. 예를 들어 일부 데이터가 백그라운드에서로드되는 경우 일시 중지 된 상태 인 경우 MVP (활동)의보기 부분으로 전달할 수 없습니다. 다시 말하지만, 이것은 일반적이지 않은 요구 사항입니다.
나는 블로그 게시물 MVP for Android을 읽고 example source code 살펴 보았다. MVP 패턴을 사용하여 달성하고자하는 최종 목표는 transpiler j2objc을 사용하여 모든 비즈니스 로직을 Objective-C로 변환 할 수있어 iOS에서 동일한 애플리케이션을 구현하면서 비즈니스 로직을 재사용 할 수 있도록하는 것입니다.
Android 용 MVP 패턴을 성공적으로 구현 한 사람이 있습니까? 그 경우 무엇이 누락 되었습니까?
내가 궁금해하는 점은 비즈니스 로직 모듈이 '컨텍스트'가 필요없는 일반 자바 인 경우 왜 '활동'수명주기가 중요합니까? 다른 말로하면, 왜 특별한 GUI 요구 사항이 문제가되는 것입니까? – Blacklight
MVP의 '보기'부분이 특정 시점 (일시 중지되었을 때)에서 업데이트되지 않을 경우 '발표자'또는 '모델'을 모르면 안됩니까? 'Model'은 나중에 복원 될 수 있도록 만들어지지 않아야합니까? – foens
활동은 라이프 사이클을 관리하고 필요에 따라 발표자를 설정/일시 중지/해제하는 책임이 있다고 주장 할 수 있습니다. 발표자는 시스템 종속적 인 UI 프레임 워크 단점에 대해 현명한 사람은 아닙니다. – dcow