ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [공식문서] MVC: Model-View-Controller 공부해보기 1/2
    Archive/iOS & Swift 2021. 6. 13. 00:01

    Documentation Archive / Cocoa Core Competencies / Model-View-Controller

     

    Model-View-Controller

     

    MVC 디자인 패턴은 하나의 앱에서 개체들을 세개의 역할중 하나로 할당함: model, view, controller. 이 패턴은 개체가 앱에서 역할을 수행하는 것 뿐만 아니라 개체가 서로 통신하는 방법을 정의함. 세가지 종류의 개체들 각각은 추상적인 바운더리(경계)에서 분리되고 그 바운더리를 다른 바운더리의 종류의 개체간에 통신을 함. 앱에서 특정 MVC유형의 개체들의 집합은 때때로 계층으로 언급됨. ex model layer

     

    MVC는 Cocoa 앱을 위한 좋은 디자인의 중요부분. 이 패턴을 선정함의 이득이 많음. 이런 앱들에서 많은 개체들은 재사용성이 많고, 그것들의 인터페이스가 정의하기 나은 경향이 있음. MVC 디자인을 가진 앱들은 다른 앱들보다 확장하기 쉬움. 또한 많은 Cocao 기술들과 아키텍처들은 MVC 기반이고 custom 개체들은 MVC 역할 중 하나를 수행해야함 

     

    Model Objectsmodel 개체는 앱의 구체적인 데이터를 캡슐화하고 데이터를 조작하고 처리하는 논리 및 계산을 정의. 예를 들어 model 개체는 게임이나 주소록에 있는 연락처를 나타낼 수 있는 데, model 개체는 다른 model 개체와 일대일 또는 일대다 관계를 가지고, 그래서 가끔 앱의 model 계층이 하나 이상의 개체 그래프인 경우도 있음. 앱의 지속적인 상태의 부분인 (파일이나 데이터베이스에 지속적인 상태가 저장되었는지) 데이터의 대부분은 앱에 로드된 후 model 개체에 있어야함. 왜냐하면 model 개체는 특정한 문제 도메인과 관련된 지식과 전문지식을 대표하며, 유사한 문제 도메인에서 재사용 될 수 있음. 이상적으로 model 개체는 데이터를 표시하고 사용자가 해당 데이터를 편집할 수 있도록 하는 view 개체와 분명하게 연결되지 않아야 함. - 사용자 인터페이스 및 표시 문제와 관련해서는 안됨.

     

    Communication: 데이터를 생성 및 수정하는 view layer의 user actions는 controller 개체를 통해 소통되고 model 개체를 생성하거나 업데이트함. model 개체가 변경될때(ex: 네트워크 연결을 통해 새 데이터가 수신됨), controller 개체에 알림을 보내어 적절한 view 개체를 업데이트

     

    View Objects

    view 개체는 사용자가 볼수 있는 앱의 개체. view 개체는 어떻게 자기를 그리는지 알고 사용자 작업에 응답할 수 있음. view 객체의 주요 목적은 앱의 model 개체의 데이터를 표시하고 해당 데이터를 편집 할 수 있도록 하는 것임. 그런데도 view 개체는 일반적으로 MVC 앱에서 model 개체로 부터 분리됨. 

     

    전형적으로 기런 개체를 재사용하고 reconfigue 하기 때문에, view 개체는 앱 간의 일관성을 일관성을 제공함. UIKit과 AppKit 프레임워크 모두 view 클래스 컬렉션을 제공하고 Interface Builder는 라이브러리에서 수십개의 view 개체들을 제공함.

     

     

    Communication: view 개체들은 앱의 controller 개체를 통해 model 데이터의 변경을 알게되고 사용자와 소통함. - 개시된 변화들- 예를 들어 text field를 통해 입력된 텍스트 - 앱의 model 개체로 controller를 통해서 

     

    Controller Objects

    controller 개체는 하나 이상의 앱 view 개체와 하나 이상의 model 개체 사이의 매개체 역할을 함. 따라서 controller 개체들은 view 개체들이 model 개체들의 변화를 알게하는 전달자이자 반대로도 역할을 함. 또한 controller 개체는 앱에 대한 설정 및 조정 작업을 수행하고 다른 개체의 수명 주기를 관리 가능함. 

     

    Communication: controller 개체는 view개체들에서 만들어진 사용자 작업을 해석하고 model 계층에 새 데이터 나 변경된 데이터를 전달함. model 개체가 변경될 때, controller 개체는 새 model 데이터를 view 개체로 전달해서 표시할 수 있음.

     

    Article : Model Object / Controller Object

    공식문서 : Documetation Archive
     

    Model-View-Controller

    Retired Document Important: This document may not represent best practices for current development. Links to downloads and other resources may no longer be valid. Model-View-Controller The Model-View-Controller (MVC) design pattern assigns objects in an ap

    developer.apple.com

     

Designed by Tistory.