[Design Pattern] 디자인패턴 -MVC 패턴

2022. 9. 18. 22:27ARCHITECTURE/Design Pattern

728x90
반응형

👉 MVC 패턴이란 

Model + View + Controller 구조의 아키텍처 패턴

Model : 앱의 데이터와 비즈니스 로직을 가지고 있음

View : 사용자에게 데이터를 보여주는 UI를 담당함

Controller : Model 과 View의 중간다리로 View로 부터 사용자의 액션을 받아 Model에게 어떤 작업을 해야하는 지 알려주거나, Model의 데이터 변화를 View에게 전달하여 View를 어떻게 업데이트할 지 알려줌

 

👉 서로 상호작용

Model & Controller

- Controller는 Model 에 접근 가능

- Model은 Controller 에 Notification & KVO 방식을 통해 모델의 변화를 알림

 

Model & View

- Model 과 View는 서로 소통 불가능

 

View & Controller

- Controller는 View에 접근 가능 (outlet을 이용)

- View는 Controller에게 행위에 대한 요청과 데이터에 대한 요청 가능

 

 

👉 사용 예시

Model

- 데이터로 사용하는 구조체

- 네트워크를 요청하고 결과를 받아오는 코드

- 메모리에 저장되는 데이터를 로드 및 저장하는 코드

- 데이터를 파싱하는 코드

- Color 나 String 등의 정보를 extenstion, constant로 정의한 정보

 

View

- UIView를 사용해 만들어진 서브클래스

 

Controller 

- View에 보여주기 위한 데이터를 Model로부터 가져오고 Controller가 보내주면서 View를 새로고침

- View에서 사용자의 액션을 받아 Model의 정보를 업데이트

 

👉 장단점

장점 단점
비교적 간단한 패턴으로 구조파악과 유지보수가 쉬움 View와 Controller의 분리가 어려워 재사용성이 떨어짐
앱이 커지면 Controller의 양이 많아져 유지보수가 어려움

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형