[Android] 디자인패턴 4 - MVP패턴 Google todo-mvp
예제 참고 https://github.com/android/architecture-samples/tree/todo-mvp todo-mvp 전체를 분석하기에는 양이 너무 많기 때문에 참고하여 간단하게 MainActivity와 프래그먼트를 구현한 예제를 통해서 mvp를 알아보도록 하자. 실행화면 기능은 제외하고 todo-mvp에서 구현한 mvp의 껍데기만 남겨놓았다. (실제 todo-mvp와는 조금 다르다) 메인 액티비티에서 영상, 기록, test 3가지의 프래그먼트를 보여주고 있다. Navigation Drawer를 사용하여 왼쪽에 네비게이션 뷰를 구현하였고 그안에있는 내정보, About, Notice를 클릭했을때 각각 구분하여 토스트 메시지를 띄워주는 상태이다. 현재 상태에서 mvp를 어떤식으로 구현하였는지 살펴보고 기능을 하나씩 추가해보면서 분석해보도록 하겠다. 클래스 구조 이미지 1 todo-mvp 구조 mvp형태는 그대로 가지고 있으면서 Contract, BasePresenter, BaseView 인터페이스가 추가되었다. 프래그먼트가 어떠한 방식으로 액티비티에 표시되는지 자세히 보도록 하자. 이미지 2 todo-mvp UML 프래그먼트가 표시되는 과정을 간략하게 표현하면 이미지 2와 같다. 번호 순서대로 하나하나 씩 분석해 보았다. 1. BaseView<T> 인터페이스 public interface BaseView < T > { void setPresenter ( T presenter ) ; } - 특정하지 않은 형태를 제네릭으로 지정하는 인터페이스이다. * T는 Contract에서 생성할 Presenter가 지정된다. - Presenter를 입력하는 setPresenter()메소...