본문 바로가기
개발 관련 정보/디자인패턴

디자인패턴 3가지(MVC, MVVM, MVP)

by MonoSoft 2023. 4. 18.
728x90
반응형

디자인패턴 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 사이의 의존성이 강해짐

 

728x90
반응형

'개발 관련 정보 > 디자인패턴' 카테고리의 다른 글

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

댓글