easy-1
안드로이드 디자인 패턴 (MVC, MVP, MVVM) 본문
<개요>
정리된 디자인 패턴으로 개발 시
1. 소프트웨어의 구조 파악이 용이하고, 변경도 손쉬워 진다
2. 재사용으로 개발 시간의 단축 및 편리함
3. 개발자간의 소통 원할
<내용>
1. MVC 패턴 (Model View Controller)
2. MVP 패턴 (Model View Present)
3. MVVM 패턴 (Model View ViewModel)
[MVC - Model View Controller]
- 사용자 인터페이스와 비지니스 로직을 분리
- Model : 데이터 + 상태 + 비지니스 로직
두뇌 역할
뷰나 컨트롤러에 묶이지 않아 재사용 가능
- View : 모델의 표현
- Controller : 애플리케이션에서 발생하는 일을 담당하는 마스터 컨트롤러
뷰가 컨트롤러에게 버튼을 눌렀다고 알리면 컨트롤러는 어떻게 모델과의 상호작용 할지 결정
주로 Fragment 나 Activity로 표현
- 장단점 : Model과 View의 분리성이 좋음
많은 코드가 Cotroller로 모이면서 유지보수에 어려움이 생길 수도 있음
View를 변경하기 위해서 Controller로 돌아가야됨
[MVP - Model View Presenter]
- 컨트롤러의 책임에 묶이지 않고 뷰와 액티비티가 자연스럽게 결합하도록 함
- Model : MVC 패턴과 동일
- View : Activity, Fragment가 뷰의 일부로 간주됨
Activity가 뷰 인터페이스를 구현해서 프레젠터가 코드를 만들 인터페이스를 갖도록 하는것이 좋음
- Presenter : 본질적으로는 MVC 패턴의 Controller와 같지만, 뷰에 연결되는 것이 아니라 그냥 인터페이스라는
점이 다름
- 장단점 : MVC 패턴 보다 깔끔함
프리젠터에 대한 유지보수에 어려움이 있을 수 있음
[MVVM - Model View ViewModel]
- 데이터바인딩을 사용
- View와 Model을 연결하기 위해 사용되는 코드를 줄일 수 있음
- Model : MVC 패턴과 동일
- View : ViewModel에 보여지는 옵저버블 변수와 액션에 유연하게 바인딩됨
- ViewModel : Model을 래핑하고, View에 필요한 옵저버블 데이터 준비
- 장단점 : View에 대한 의존성이 전혀 없으므로 유닛테스트가 쉬워짐
시간이 지나면 유지보수에 XML 파일을 건들수도 있음
-> 간단한 화면, 앱 구성은 MVC 패턴을 이용하여 가볍게 구현하고
복잡한 구조는 MVVM 패턴을 사용하여 데이터바인딩을 이용한 보다 빠른 퍼포먼스를 짤 수있고
적은 코드를 사용할 수 있음
'Android > Java' 카테고리의 다른 글
안드로이드 주소록으로 내보내기 (0) | 2021.06.10 |
---|---|
안드로이드 바로가기 만들기 ShortCut (0) | 2021.06.10 |
안드로이드 release로 컴파일하기 (0) | 2021.06.10 |
안드로이드 Proguard 설정 (0) | 2021.06.10 |
안드로이드 릴리즈 모드 로그 제거 (0) | 2021.06.10 |