Cute Apple
본문 바로가기
개발/Android

[Android] MVC & MVVM & MVP

by 미댕댕 2022. 8. 6.

MVC ❓

  • Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리
  • View : 사용자에서 보여지는 UI 
  • Controller : 사용자의 입력(Action)을 받고 처리

동작순서

  1. 사용자의 Action들은 Controller에  들어옴
  2. Controller는 사용자의 Action를 확인하고, Model을 업데이트
  3. Controller는 Model을 나타내줄 View를 선택
  4. View는 Model을 이용하여 화면을 표출

 

장점

  • 가장 보편적으로 사용되고 단순한 팬턴

 

단점

  • Model 과 View 사이에 의존성이 커짐(유지보수가 어려움) 

 

MVVM❓

  • Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리
  • View : 사용자에서 보여지는 UI 
  • ViewModel :  View를 나타내 주기 위한 Model이자 View를 나타내기 위한 데이터 처리를 하는역할

동작순서

  1. 사용자의 Action들은 View를 통해 들어옴
  2. View에 Action이 들어오면, Command 패턴으로 View Model에 Action을 전달
  3. View Model은 Model에게 데이터를 요청합니다.Model은 View Model에게 요청받은 데이터를 응답
  4. View Model은 응답 받은 데이터를 가공하여 저장
  5. View는 View Model과 Data Binding하여 화면을 에 나타남

 

장점

  • Model과 View 사이의 의존성이 없음
  • ViewModel 과 View 사이에 의존성이 없음
  • 중복되는 코드를 모듈화 할 수 있음

 

단점

  • ViewModel 설계가 쉽지않음

 

MVP❓

  • Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리
  • View : 사용자에서 보여지는 UI
  • Presenter : View에서 요청한 정보로 Model을 가공하여 View에 전달해 주는 역할

동작순서

  1. 사용자의 Action들은 View를 통해 들어옴
  2. View는 데이터를 Presenter에 요청
  3. Presenter는 Model에게 데이터를 요청
  4. Model은 Presenter에서 요청받은 데이터를 응답
  5. Presenter는 View에게 데이터를 응답합니다.View는 Presenter가 응답한 데이터를 이용하여 화면에 표출

 

장점

  • Model과 View 사이의 의존성이 없음

 

단점

  • View 와 Presenter 사이의 의존성이 높아짐

 

 

[도식화된 MVC & MVP & MVVM]

 

 

 

참고

https://beomy.tistory.com/43

https://velog.io/@dbfudgudals/MVC-MVP-MVVM-qaypehdd

반응형

'개발 > 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

댓글