Model, View, Controller로 어플리케이션 구성 요소를 나누어 개발하는 패턴.
재사용성과 확장성이 용이하며 어플리케이션이 복잡해 질수록 모델과 뷰 관계 복잡
Controller는 여러 개의 View를 선택할 수 있음(1:N)
View는 Controller를 알지 못함
- 모델 - 어플리케이션의 데이터(db, 상수, 변수 등)
- 뷰 - 사용자 인터페이스 요소(보이는 부분). 모델 정보 따로 저장X, 변경 시 컨트롤러에 전달
- 컨트롤러 - 모델과 뷰 잇는 역할. 이벤트 등 메인 로직 담당
이벤트→ 갱신→
뷰 ↔ 컨트롤러 ↔ 모델
←갱신 ←알림
8) MVP 패턴
Model, View, Presenter로 어플리케이션 구성 요소를 나누어 개발하는 패턴
MVC와 유사하나 View와 Presenter가 일대일 관계로 더 강한 결합.
View와 Model 사이에 의존성이 없음
이벤트→ 갱신→
뷰 ↔ 프레젠터 ↔ 모델
←갱신 ←변경
9) MVVM 패턴
Model, View, ViewModel로 어플리케이션 구성 요소를 나누어 개발하는 패턴
UI를 별도의 코드 수정 없이 재사용 가능하며 단위 테스트하기 좋음.
ViewModel과 View는 1:N 관계.
View와 ViewModel(데이터 바인딩 이용), 그리고 View와 Model 사이의 의존성이 없음
databinding,command 갱신→
View ↔ ViewModel → Model
←알림 ←알림
특징 | MVC | MVP | MVVM |
관계 | V 와 C 는 1 : n관계 | V 와 P는 1 : 1관계 | V 와 VM 는 1 : n관계 |
참조여부 | V는 C 참조 x | V는 P 참조 o | V는 VM 참조 o |
단위테스트 | 보통 | P와 의존성이 커 어렵 | 가장 쉬움 |
안드로이드 API 의존 | 높음 | 보통 | 낮음 |
출처
https://velog.io/@ich0906/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4
디자인 패턴
디자인 패턴 기초
velog.io
출처 : 면접을 위한 CS 전공지식 노트