비디오: Building Apps for Mobile, Gaming, IoT, and more using AWS DynamoDB by Rick Houlihan 2024
iOS 프레임 워크는 객체 지향적입니다. 실제로 의미하는 것을 이해하는 쉬운 방법은 사무실에서 일하는 팀에 대해 생각하는 것입니다. 완료해야하는 작업은 분할되어 개별 팀 구성원 (이 경우 개체)에게 할당됩니다. 각 팀원은 일을하고 다른 팀원과 함께 일을 처리합니다. 또한, 훌륭한 팀원은 다른 구성원이 자신의 업무를 어떻게 처리하는지 상관하지 않으며 합의 된 분업에 따라 업무를 수행합니다. 마찬가지로, 객체 지향 프로그래밍의 객체는 자체 비즈니스를 관리하며, 요청할 때해야 할 일을 수행하는 한, 옆집 가상 큐브의 객체가 무엇을하고 있는지 신경 쓰지 않습니다.
위대한 - 지금까지 - 그러나 성가신 질문은 여전히 프로그래머를 괴롭 히고 있습니다:
대상과 그 대상에 대해 어떻게 결정합니까?
때로는 그 질문에 대한 대답은 매우 쉽습니다. 실제 세계를 모델로 사용하십시오. (Eureka!) 그러나 일반적인 프로그램 구조에 관해서는, 어떻게해야당신이 객체가 무엇인지 결정합니까
? 그렇게 명확하지 않을 수도 있습니다. MVC 패턴은 app 함수를 객체로 그룹화하는 잘 정립 된 방법입니다. 그 변형은 적어도 최초의 객체 지향 언어 중 하나 인 스몰 토크 (Smalltalk)의 초기부터 사용되어 왔습니다. MVC는 높은 수준의 패턴입니다. 즉, 특정 아키텍처를 다루는 대신 앱 아키텍처를 처리하고 앱에서 수행하는 일반적인 역할에 따라 객체를 분류합니다.
모델 개체:
이 개체는 함께 앱의 콘텐츠 "엔진"을 구성합니다. 여기에는 앱의 데이터와 로직이 포함되어있어 앱을 예쁜 얼굴 이상으로 만듭니다.예를 들어, RoadTrip 앱에서 모델은 목적지와 명소의 목록과 대상의 이름과 위치 및 사용할 배경 이미지를 유지 관리합니다.특정 TV 프로그램 인
-
모델 (하나의 객체이거나 상호 작용할 수있는 모델)을 생각해 볼 수 있습니다. 솔직하게 말해서, 에.
사실, 모델은 오점을주지 않아야합니다. 데이터를 소유하고는 있지만 사용자 인터페이스에 연결되어 있지 않아야하며 데이터로 수행 된 작업에 대해 더러움이 있어야합니다. 개체보기: 이 개체는 화면에 표시하고 사용자 작업에 응답합니다. 거의 볼 수있는 것은 뷰 객체의 일종 인 윈도우와 모든 컨트롤입니다.
여러분의 견해는 모델 객체로부터받은 정보를 표시하는 방법과 모델에서 필요할 수있는 사용자의 입력을 얻는 방법을 알고 있습니다. 그러나 뷰 자체는 모델에 대해 아무 것도 모른다. 일부 이벤트를 표시하라는 요청을 처리 할 수는 있지만 요청이 의미하는 바를 신경 쓰지 않습니다.
-
보기
는 어떤 프로그램이 표시되는지 또는 방금 선택한 채널을 신경 쓰지 않는 텔레비전 화면으로 생각할 수 있습니다.
UIKit 프레임 워크는 다양한 종류의보기를 제공합니다. 뷰가 모델에 대해 아무것도 모르고 모델이 뷰에 대해 아무것도 모르는 경우 데이터 및 기타 알림을 서로 전달하도록하려면 어떻게해야합니까? 대화를 시작하려면 (모델: "방금 데이터를 업데이트했습니다."보기: "이봐, 나에게 표시 할만한 것을 주겠다"), MVC 삼중주의 세 번째 요소 인 컨트롤러가 필요합니다. 컨트롤러 개체:
이 개체는 앱의보기 개체를 모델 개체에 연결합니다. 뷰 객체에 표시 할 내용 (모델에서 가져 오기)을 제공하고 뷰에서 사용자 입력을 모델에 제공합니다.
컨트롤러
-
는 쇼를 케이블에서 끌어 와서 화면으로 보내거나 특정 유료 시청 프로그램을 요청하는 회로라고 생각할 수 있습니다. Xcode를 사용하면 모델 및 뷰 객체 모두가 뷰 및 뷰 컨트롤러 용 인터페이스 빌더 및 코어 데이터 객체 용 데이터 모델 편집기와 같은 그래픽 사용자 인터페이스로 작성되는 경우가 많습니다. 컨트롤러는 거의 항상 코드로 구현됩니다. 컨트롤러 객체를 구현하는 것은 많은 개발자들에게 전통적인 코딩과 같은 "느낌"을주는 MVC의 일부입니다.
기본 애플리케이션 아키텍처는 다음과 같습니다. 모델, 뷰 및 컨트롤러 객체 측면에서 앱을 생각하면 UIKit 프레임 워크가 이해하기 시작합니다. 이런 방식으로 프레임 워크를 이해하면 앱 특정 동작의 일부를 수행 할 수있는 부분에 안개가 들기 시작합니다. Objective-C에서 클래스는 인스턴스 변수, 속성 및 메서드 (클래스의 인스턴스 변수에 액세스 할 수 있음)를 포함합니다. 클래스는 코드를 포함하는 프로젝트의 파일에 관한 것입니다. 클래스는 프로그램에서
유형
입니다. 반면에 객체는 런타임에 존재하며 클래스의
인스턴스
입니다.클래스를 청사진으로 생각하면 해당 유형의 객체를 작성할 수 있습니다.