Android 에서 MVP 모드 사용 안내
여러 곳 에서 MVP 를 언급 하 는 것 을 자주 볼 수 있 습 니 다. 안 드 로 이 드 개발 에서 MVP 모델 이 점점 유행 하고 있 습 니 다. 저도 MVP 모델 을 배우 고 정리 하 겠 습 니 다.안 드 로 이 드 용 MVP The Clean Architecture 및 Resources for Learning Dagger for Android.
소프트웨어 구조의 의존 규칙:
소프트웨어 는 층 을 나 누고 고위 층 은 기초 업무 논리 와 전략 이 며 저층 은 실현 체제 와 표현 형식 이다.코드 와 데이터 의존 은 저층 코드 만 고위 층 에 의존 할 수 있 을 뿐 반대로 할 수 없다.
MVP 가 뭐 예요?
MVP 는 모델, View 와 Presenter 의 약칭.아주 유명한 MVC 모델 의 진화 판 입 니 다.MVP 모드 는 디 스 플레이 논리 와 비 즈 니스 논리 층 에서 분리 되 며, 이상 적 인 상황 에서 MVP 모드 에 서 는 서로 다른 보기 (View) 를 교체 하 는 상황 에서 완전히 동일 한 비 즈 니스 논 리 를 구현 할 수 있다.
Presenter 는 MVC 의 Controller 를 대신 해 Controller 보다 더 많은 임 무 를 맡 고 복잡 하 다.Presenter 는 이 벤트 를 처리 하고 해당 하 는 논 리 를 실행 합 니 다. 이 논 리 는 Model 의 Command 에 투사 하여 Model 을 조작 합 니 다.UI 가 어떻게 작 동 하 는 지 처리 하 는 코드 는 기본적으로 Presenter 에 있 습 니 다.Presenter 는 한 밴드 의 지휘자 처럼 전체 애플 리 케 이 션 을 표현 하고 조율 하 며 다른 대상 을 만 들 고 조율 한다.
MVP 와 MVC 는 중대 한 차이 가 있다. MVP 에서 View 는 Model 을 직접 사용 하지 않 는 다. 그들 간 의 통신 은 Presenter (MVC 중의 Controller) 를 통 해 이 루어 진다. 모든 상호작용 은 Presenter 내부 에서 발생 하고 MVC 에서 View 는 Controller 가 아 닌 직접 Model 에서 데 이 터 를 읽는다.
MVP 모드 를 왜 사용 하 는 지
안 드 로 이 드 에서
Activity
인터페이스 와 데이터 획득 층 을 심각하게 결합 시 켰 기 때문이다.이 로 인해 Activity
의 유형 이 점점 커지 고 데이터 획득 층 을 수정 하면 전체 View 를 다시 써 야 할 수도 있다.모듈 과 자동화 테스트 에 도 매우 불리 하 다.MVP 는 View 를 데이터 에 독립 시 켜 대량의 논 리 를
Activity
에서 추출 했다.응용 층 을 나 누 면 각 층 이 독립 적 으로 테스트 하고 변동 할 수 있다.MVP 모드 는 어떻게 작 동 합 니까?
MVP
모델 중의 캐릭터 구분 은 표준적 인 구분 방법 이 없다.대체적인 정 의 는 다음 과 같다.Activity
, Fragment
또는 View
에 대응 합 니 다.보기 의 상호작용 은 알림 표시 기 가 필요 하기 때문에 무엇 을 할 지 결정 합 니 다.그래서 View 에는 보통 Presenter 의 인용 이 포함 되 어 있 습 니 다.이상 적 인 상황 에서 Presenter 는 일반적으로 주입 에 의존 하 는 방식 으로 이 루어 진다.MVP 처리 절 차 는 다음 그림 과 같다. 그림% 1 개의 캡 션 을 편 집 했 습 니 다.http://www.360doc.com/content/10/0225/18/86732016805936.shtml_
사용자 의 요청 은 먼저 View 에 도착 하고 View 는 특정한 Presenter 에 요청 을 전달 하 며 Presenter 는 Model 에서 데 이 터 를 얻 은 후에 처리 결 과 를 인터페이스 로 View 에 전달 합 니 다.
본 고 를 다 쓴 후에 실제 실천 사례 가 없 는 것 을 발견 하면 독 자 는 글 중의 참고 문장 을 깊이 읽 을 수 있 고 그 안에 관련 사례 가 있다.나 는 뒤에 있 는 블 로그 에 MVP 모드 를 사용 하 는 과정 을 계속 기록 할 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.