MVP 모델, 보기, 발표자에 대한 스탠드, 혼란을 정리 도움이되는 좋은 기사, 그것은 코딩 패턴이다. 이것은 단지 MVC (모델, 보기, 컨트롤러)에서 진화 한 것입니다. MVC wikipedia page을 참조하십시오.
MVP와 MVC의 차이점은 MVP에서는 모델과 뷰가 서로를 알지 못한다는 점입니다. MVP에서는보기가 가능한 한 바보가되어야합니다. 모든 상호 작용은 발표자가 처리합니다. 이는 코드를 올바르게 구성하는 방법 일뿐입니다.
일부 사람들은 이런 방식으로 코드를 구성하기 위해 수행해야 할 작업량을 줄이기 위해 프레임 워크를 만들었습니다. 다양한 MVP 구현을 살펴보십시오. 웹에서 쉽게 찾을 수 있습니다.
MVP를 사용하면 동작이나보기를 가짜로 만드는 다른 구현 (일반적으로 모의)으로보기를 쉽게 바꿀 수 있으므로 코드를 더 쉽게 테스트 할 수 있습니다. 따라서 브라우저 환경에서 테스트를 수행 할 필요가 없습니다 (GWT 뷰는 HTML 뷰입니다). 따라서 테스트가 더 빨리 진행됩니다.
구글 문서는 말한다 :
활동과 환경 프레임 워크는 당신이 당신의 응용 프로그램 내에서 북마크 된 URL을 만들 수 있습니다.
그래서 활동 및 장소는 단순한 MVP 프레임 워크 이상의 것입니다. 그럼에도 활동은 발표 자입니다.
public interface Activity {
String mayStop();
void onCancel();
void onStop();
void start(AcceptsOneWidget panel, EventBus eventBus);
}
당신은 구글에서 장소 및 기타 개체를 사용하지 않고 발표자의 활동 인터페이스를 사용할 수 있습니다. 하지만이 경우 활동 시작 및 중지를 담당하는 일종의 활동 관리자 코드를 작성해야합니다. 시작과 멈춤에서 당신은 아마 당신의보기를 만들고, DOM에 추가하고, 이벤트 핸들러를 등록하고 싶을 것입니다. 그리고 당신이 멈 추면이 모든 것을 파괴하기를 원할 것입니다.
MVP 구현에서 동일한 역할을하는 bind() 및 unbind() 메소드를 찾을 수 있습니다.
Google의 Activity Place 구현 기능은 장소 인 장소의 모든 객체에서 비롯되며 활동을 시작하거나 중지하고 기록을 처리합니다.
위의 다른 사용자와 마찬가지로은 URL을 나타 내기위한 것입니다.
구글의 Activity Place 구현에는 많은 객체가 관련되어 있습니다. 이해를 돕기위한 스키마가 있습니다. 당신은 그 활동이 온통 작은 부분 일뿐입니다. You can find some more details on my blog in this article
, 당신이 정확히 무엇을 의미합니까 활동 및 환경 만 활동 및 장소
활동이 발표자 인 경우 자신의 관계가 아닙니까? : | –
Re. "MVP를 사용하는 경우": MVP는 패턴이므로, 프리젠 테이션 로직을 액티비티 (즉, 발표자로 지정)와 다른 클래스의 뷰에 넣는 것을 의미합니다. 레. 당신의 두 번째 코멘트는, "뷰가 일반적으로'Composite's"가된다고하면, MVP와 관련된'Composite '가되는 걸까요? 어쩌면 내가 MVP라고 말하면 분명하고 활동은 직각 문제입니다 (하나는 코딩 패턴이고 다른 하나는 인앱 탐색에 대한 툴킷/마이크로 프레임 워크입니다) –