728x90
반응형

Android 공부/디자인패턴 3

1) MVVM 패턴

MVVM 패턴? 위에서 언급한 대로, 액티비티에 기능을 붙이다보면 액티비티가 무거워지거나 혹은 종속성이 너무 강해 테스트가 힘들고 유지보수가 어려워진다. 이런 고민 때문에 MVVM 패턴이 등장했다. MVVM은 View - ViewModel - Model을 이용해 각각의 역할을 분리하여 가독성과 재사용성을 높인 디자인 패턴이다. MVC와 MVVM 차이점 기존 MVC(Model - View - Controller) 구조에서는 액티비티가 컨트롤러의 역할을 했으며, 뷰와 연결되어 유저와 상호작용도 하고, 모델과 연결되어 데이터도 처리했다. 즉 뷰와 모델 사이에서 중재자 역할을 했다. MVVM에서는 뷰에서 뷰모델로, 뷰모델에서 모델로 작업을 처리하며, 뷰에서 모델을 직접 참조하지 않는다. 대신 뷰에서 뷰모델을 관..

MVP 패턴 정리1

Model View Presenter 패턴은 MVC(Model View Controller) 패턴을 기반으로 하는 아키텍처 패턴으로 관심사의 분리를 높이고 단위 테스트를 용이하게 합니다. MVC 패턴에서 View와 Model의 의존성을 없애고 단위 테스트가 어려웠던 문제점을 해결하기 위해 등장하게된 패턴이라고 할 수 있다. 1. Contract interface 생성 Presenter와 View 사이에 어떤 기능이 있는지 한눈에 파악할 수 있도록 명시하는 역할. ( Contract는 MVP의 필수요소는 아닙니다. ) interface MainContract { interface View : BaseView { fun showProgress(isShow: Boolean) fun setData(str: St..

MVP 패턴 예시1

Contract ( view와 presenter가 구현해야할 인터페이스를 정의 ) public interface main_view_contract { /* MVP의 View가 구현할 인터페이스 프레젠터가 View를 조작 할때 사용 */ interface View{ void showToast(String message); void setText_userName(String name); void setText_userAge(int age); } /* MVP의 Presenter가 구현할 인터페이스 View를 클릭 했을대 등 View가 Presenter에 알릴때 사용 */ interface userActoin{ void setUserName(String name); void getUserName(); void ..

728x90
반응형