iOS & Swift 공부 - MVC Design Pattern
Model-View-Controller
- MVC 디자인 패턴은 앱의 객체를 모델, 뷰, 컨트롤러의 3 가지 역할 중 하나의 역할로 할당한다.
- 객체가 수행하는 역할 + 서로 통신하는 방식을 정의
Model Objects
- 앱과 관련된 Data 를 캡슐화하고, 해당 데이터를 조작하고 처리하는 로직과 계산을 정의한다.
- 하나의 모델 객체는 다른 모델 객체와 1:1 또는 1:다 관계를 맺을 수 있다.
- Model Objects 는 데이터를 사용자에게 제공하거나 사용자가 이를 편집할 수 있는 View Objects 에 명시적으로 연결되어서는 안 된다.
View Objects
- 앱 내에서 사용자가 볼 수 있는 객체를 이야기한다.
- 사용자 동작 (User Interaction)에 응답할 수 있다.
- View Object 의 주된 목적은 앱의 Model Object 의 데이터를 보여주고 해당 데이터를 편집할 수 있도록 하는 것
Controller Objects
- View Objects 과 Model Objects 사이의 중개자 역할을 한다.
- 사용자가 버튼을 탭하거나 텍스트 필드에서 텍스트를 입력하는 것처럼, 뷰 객체에서 이루어진 사용자 동작 및 의도를 해석하며, 데이터를 모델 객체에 전달한다.
- 즉, Controller Object 는 View Object 로 하여금 모델 객체의 변경사항을 인지하거나, 그 반대의 경우가 가능하도록 하는 매개체가 된다.