-
[Design Pattern] MVC PatternLearn/Architecture 2022. 9. 25. 20:46
# 개요
Model-View-Control Pattern
- Model - application object
- View - UI
- Controller - UI가 사용자의 입력에 어떻게 반응하는지
여러 디자인 패턴들이 적용된 Compound Pattern
# 구조
View와 Controller(UI)는 API를 통해 Model(Non-UI)에 접근할 수 있다.
Non-UI는 UI를 잘 알지 못하게 한다.
- 같은 데이터로도 여러 UI가 있을 수 있으므로 Non-UI에 비해 UI가 많다.
- UI쪽이 변화가 있을 때 마다 Non-UI가 영향을 받으면 변경이 너무 잦게 된다.
점선은 실선보다 커플링이 약한 상태를 의미한다.
# Patterns in MVC
Observer pattern (Model - View)
- 모델과 뷰 간의 디커플링을 해결하기 위해 사용
- publisher가 subscriber에 대해 알지 않아도 됨
Composite pattern (View - View)
- 위젯의 경우 계층적인 구조를 가지는 경우가 많음. (View)
- 계층의 구조와 상관없이 오브젝트를 다루는데 좋은 패턴
Strategy pattern (Controller - View)
- View는 자신에게 들어온 일을 직접 처리하는게 아니라 다른 객체에게 위임해서 해결함
- View는 context 객체에 해당하고 Controller는 특정한 Concrete 전략 객체가 된다.
이 외에 Factory나 Decorator pattern도 사용한다.
'Learn > Architecture' 카테고리의 다른 글
Architectural Styles (2) - Data Flow, Data Centered (0) 2023.04.07 Architectural Styles (1) - 개요 (0) 2023.04.07 [Design Pattern] Bridge Pattern (0) 2022.09.25 [Design Pattern] Composite Pattern (0) 2022.09.25 [Design Pattern] Decorator Pattern (0) 2022.09.24