애플에서 기본적으로 지원하는 디자인 패턴으로 Model-View-Controller 구조의 아키텍처 패턴.
비즈니스 로직을 담당하는 함수와 데이터 관련된 코드를 담고 있다. 필요한 구조체나 클래스를 정의하는 영역.
UI에 대한 코드를 담고 있다. 인터페이스를 구축하는 영역.
Model과 View 사이의 중재자 역할을 한다. 사용자의 입력을 받아 Model을 업데이트하거나 Model의 변경사항을 감지하여 View를 업데이트한다.
View에서 사용자 입력을 받아 Controller에게 전달하고 Controller는 그 입력에 따라 Model을 변경시키고 그걸 토대로 View를 갱신한다.
다른 패턴에 비해 코드량이 적고 애플에서 지원하는 패턴이기 때문에 쉽게 접근할 수 있다.
작은 프로젝트에서는 사용하기 좋지만 큰 프로젝트에서는 유지보수가 힘들어진다.
뷰와 컨트롤러가 밀접하게 연결되어 있어 재사용성이 떨어지고 컨트롤러의 크기가 커지기 때문.