-
MVC(Model-View-Controller) PatternDesign Pattern 2022. 8. 18. 13:49
안녕하세요:) 꾸리스 입니다
오늘은 디자인 패턴 중 가장 기본적인 MVC패턴에 대해 공부한 내용을 정리해보려 합니다!
그럼 시작하겠습니다!
먼저 MVC 패턴은 이름에서 알 수 있듯이 객체를 3가지로 타입으로 나눈 것입니다.
1. Model: application data를 갖고 있습니다.
2. View: visual elements와 controls을 화면에 표시하는 역할을 합니다. 주로 UIView를 subclassing 합니다.
3. ViewController: model과 view사이에 상호작용(?, 영어로는 coordinate이라고 나와있네요)한다. 주로 UIViewController를 subclassing 합니다.
Apple이 제공하는 UIKit은 MVC 디자인 패턴을 채택하고 있습니다.
그래서 iOS 프로그래밍에서는 굉장히 흔하게 볼 수 있는 디자인 패턴입니다!
Controllers는 models과 views사이에 상호작용을 하기 때문에 각각의 프로퍼티를 강하게 참조합니다.(Strong Reference)
(강한 참조가 이해 안 된다면 여기를 읽어보면 도움이 될 것 같아요!)
또한, Controllers는 1개 이상의 model / view를 가질 수 있습니다.
반대로, models / views는 Controller를 강하게 참조할 수 없습니다. 강하게 참조하게 될 경우 참조 사이클이 발생될 수 있기 때문이지요!
대신에, Models은 프로퍼티 옵저빙을 통해 Controller와 소통합니다. 또한, Views는 IBActions을 통해 Controller와 소통합니다.
iOS - 면접 질문 - 5
Q) ARC에 대해 설명해주세요. 드디어 나왔네요! 이번을 계기로 저 또한 깊게 공부해 보겠습니다! 출발 합시다! 가장 먼저 Swift공식문서를 확인해 보겠습니다. Automatic Reference Counting — The Swift Program
chris-kim.tistory.com
예를 들어서
ViewController에 tableView를 연결하게 되면 @IBOutlet weak var 이렇게 연결되는 것을 볼 수 있습니다.
즉, View는 Controller를 강하게 참조하지 않고 약하게 참조합니다(weak)
정리를 해보겠습니다!
1. MVC Pattern은 Object를 3가지 카테고리로 분류하는 방법입니다.
Model, View, Controller
2. MVC Pattern은 Models과 Views를 재사용하지만, Controller의 logic은 너무 구체적이어서 재사용하지 않습니다.
3. Controller는 Model과 View사이의 상호작용을 담당합니다. Controller가 Model 데이터를 View에 세팅하고, IBAction을 통해 View를 호출하기 때문입니다
'Design Pattern' 카테고리의 다른 글
Observer Pattern이란? (0) 2022.08.18 Singleton Pattern 이란? (0) 2022.08.18 Delegation Pattern (0) 2022.08.18