디자인패턴 3가지(MVC, MVVM, MVP)
훌륭한 설계란 인터페이스 간의 의존성을 제거하는 것에 있습니다.
MVC 패턴
View와 Model 사이에 Controller를 두어 View와 Model의 의존성을 없애기 위해 사용한다.
1. 구조
* Model
:Application에서 사용되는 데이터와 그 데이터를 처리하는 부분
* View
:사용자에게 보여지는 인터페이스
*Controllr
:사용자의 입력을 받고 처리하는 부분
2. 동작
3. 특징
① Controller는 여러 개의 View를 선택할 수 있는 1:N 관계
② Controller는 View를 선택할 뿐 직접 업데이트하지 않음 (View는 Controller 존재를 모름)
③ 단순하고 보편적으로 많이 사용되는 디자인패턴
④ View와 Model 사이의 의존성이 높아 앱이 커질수록 복잡하고 유지보수가 어려움
MVVM 패턴
MVC 파생구조로 View Model이 존재
1. 구조
* Model : Application에서 사용되는 데이터와 그 데이터를 처리하는 부분
* View : 사용자에게 보여지는 인터페이스
*viewmodel : View를 나타내주기 위한 Model
2. 동작
3. 특징
① Command 패턴과 Data Binding 두 가지 패턴을 사용하여 구현됨
② View와 View Model은 1:N 관계
③ 두 가지 패턴을 통해 View와 View Model 사이의 의존성을 없애 독립적 모듈화하여 개발 가능
④ View Model 설계가 어려움
MVP 패턴
MVC의 파생구조로 Controller 대신 Presenter가 존재
1. 구조
* Model:Application에서 사용되는 데이터와 그 데이터를 처리하는 부분
* View:사용자에게 보여지는 인터페이스
* Present:View에서 요청한 정보로 Model을 가공하여 View에 전달하는 부분
2. 동작
3. 특징
① Presenter는 View와 Model의 인스턴스를 가지고 있어 둘을 연결하는 역할
② Presenter와 View는 1:1 관계
③ Presenter를 통해서만 데이터를 전달받기 때문에 View와 Model 사이의 의존성이 없음.
④ View와 Presenter 사이의 의존성이 강해짐
'개발 관련 정보 > 디자인패턴' 카테고리의 다른 글
15.RMI (0) | 2023.04.13 |
---|---|
14. Bridge 패턴 (0) | 2023.04.12 |
13. Strategy 패턴 (0) | 2023.04.11 |
iterator 패턴 (0) | 2023.04.06 |
11.Builder 패턴 / Chain of Responsibility 패턴 (0) | 2023.04.04 |
댓글