MVC ❓
- Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리
- View : 사용자에서 보여지는 UI
- Controller : 사용자의 입력(Action)을 받고 처리
동작순서
- 사용자의 Action들은 Controller에 들어옴
- Controller는 사용자의 Action를 확인하고, Model을 업데이트
- Controller는 Model을 나타내줄 View를 선택
- View는 Model을 이용하여 화면을 표출
장점
- 가장 보편적으로 사용되고 단순한 팬턴
단점
- Model 과 View 사이에 의존성이 커짐(유지보수가 어려움)
MVVM❓
- Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리
- View : 사용자에서 보여지는 UI
- ViewModel : View를 나타내 주기 위한 Model이자 View를 나타내기 위한 데이터 처리를 하는역할
동작순서
- 사용자의 Action들은 View를 통해 들어옴
- View에 Action이 들어오면, Command 패턴으로 View Model에 Action을 전달
- View Model은 Model에게 데이터를 요청합니다.Model은 View Model에게 요청받은 데이터를 응답
- View Model은 응답 받은 데이터를 가공하여 저장
- View는 View Model과 Data Binding하여 화면을 에 나타남
장점
- Model과 View 사이의 의존성이 없음
- ViewModel 과 View 사이에 의존성이 없음
- 중복되는 코드를 모듈화 할 수 있음
단점
- ViewModel 설계가 쉽지않음
MVP❓
- Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리
- View : 사용자에서 보여지는 UI
- Presenter : View에서 요청한 정보로 Model을 가공하여 View에 전달해 주는 역할
동작순서
- 사용자의 Action들은 View를 통해 들어옴
- View는 데이터를 Presenter에 요청
- Presenter는 Model에게 데이터를 요청
- Model은 Presenter에서 요청받은 데이터를 응답
- Presenter는 View에게 데이터를 응답합니다.View는 Presenter가 응답한 데이터를 이용하여 화면에 표출
장점
- Model과 View 사이의 의존성이 없음
단점
- View 와 Presenter 사이의 의존성이 높아짐
[도식화된 MVC & MVP & MVVM]
참고
반응형
'개발 > Android' 카테고리의 다른 글
[Android] Vector 와 Bitmap (0) | 2022.08.08 |
---|---|
[Android] DP 와 SP (0) | 2022.08.07 |
[Android] Swiperefreshlayout 사용기 (0) | 2022.08.05 |
[Android ] AAC란? (0) | 2022.08.04 |
[Android] Databinding이란? (0) | 2022.08.02 |
댓글