차례:
비디오: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2024
객체 지향 디자인은 iOS 응용 프로그램에서 매우 유용한 구조적 및 동작 적 개념을 모두 가지고 있습니다. 객체 지향 디자인은 객체가 객체와 연관되어있는 프로그램을 설계하는 다른 방법입니다. 다음은 OO의 기본 요소를 완성하는 추가 개념을 제시하면서 핵심 OO 용어를 정의하고 설명합니다.
객체
객체는 자신에 관한 데이터와 데이터 조작에 대한 설명을 포함하는 실제 또는 추상 인 개별 식별 가능 항목입니다. 즉, 객체는 정수를 식별하는 것과 같은 수학 개념과 같은 순수한 개념은 도메인을 분석하는 첫 번째 단계입니다.
-
각 객체는 클래스의 인스턴스로 간주됩니다.
-
클래스
A
클래스
는 하나 이상의 유사한 객체가 공유하는 조직 및 동작에 대한 설명입니다.
템플릿
입니다. 그러나 클래스와 분리 된 유형의 개념은 인터페이스라고하는 프로그래밍 구성에 의해 많은 프로그래밍 언어 (Objective-C가 아님)에서 캡처됩니다.
추상화 객체의 클래스와 기능을 식별 할 때 활동의 도메인과 관련이없는 클래스 나 기능을 고려하지 않습니다. 예를 들어, 차를 만드는 것에 관한 프로그램을 디자인하는 경우, 찻잔의 기능을 나타 내기 위해 수업을 들었을 가능성은 거의 없습니다. 특정 도메인과 관련이있는 것에 초점을 맞추기 위해 무의미한 부분을 무시하는 모델링을 추상화라고합니다. 추상화는 문제와 관련된 측면을 다루기 위해 필요한 클래스 (및 유형)를 식별하는 행위입니다. 일반화
일반화
의 개념은 Vessel과 Teacup 클래스 간의 관계에서 예시된다. 프로그래밍 언어의 일반화는 한 클래스의 데이터와 동작을 다른 클래스의 기초로 포함 시키거나 다른 클래스의 기초로 사용할 수있는
상속 ( ) 메커니즘을 통해 증명됩니다. 여러 프로그래밍 언어에는 모든 클래스가 상속되는 루트 클래스가 있습니다. Objective-C 프레임 워크에서이 클래스는 NSObject라고 불린다. NSObject는 Java의 Object 클래스와 같습니다.
서브 클래스
는 다른 클래스 ( 수퍼 클래스 라고 함)의 모든 기능을 상속하는 클래스입니다. 게다가, 서브 클래스는, 특정의 메소드의 독자적인 구현을 제공하는 것에 의해, 특정의 기능을 오버라이드 (override) 할 수 있습니다. 슈퍼 클래스의 메소드는, 오버라이드 (override) 메소드로부터 호출 할 수 있습니다. 추가 메소드를 제공하거나, 추가 멤버 변수를 사용하여 수퍼 클래스의 기능을 확장 할 수도 있습니다. 마찬가지로, 유형 ( 인터페이스 )은 하위 유형을 사용하여 확장 될 수도 있습니다. 여기에서는 기능이 무시됩니다. 하위 유형에는 객체가 구현해야하는 메소드가 더 많이 있습니다.
객체는 일반적으로
상태라고도하는 데이터를 저장합니다. 이 상태는 속성으로 알려진 데이터 보유자에 저장됩니다. 객체 (클래스로 정의 됨)에도 기능이 있습니다. 메서드
는이 기능에 액세스하는 방법, 즉 개체의 특성을 설정하거나 조작하는 명령 집합을 실행하는 방법입니다. 다른 객체는 이러한 메소드가 실행되도록합니다. 메시지 전달, 는 객체가 다른 객체에 데이터를 보내거나 다른 객체에게 메소드 호출을 요청하는 프로세스입니다. 메시지 전달은 다른 개체가 개체의 메서드를 호출 할 때 발생합니다. 일반적으로 프로그램 실행은 특정 클래스 내에서 main 라는 함수 또는 메소드를 호출하는 것으로 시작합니다. 추상화 과정은 클래스와 유형을 생성합니다. 클래스와 타입은 하나의 특징이 더 있습니다: 메소드와 공개적으로 접근 가능한 속성을 통해서만 사용을 제한합니다. 이는
캡슐화 로 알려져 있으며, 클래스 및 객체를 디자인하는 기술로, 해당 클래스의 객체가 수신 할 수있는 제한된 메시지 집합을 정의하여 데이터 및 동작에 대한 액세스를 제한합니다. 캡슐화는 클래스의 내부에 대한 액세스를 방지하고 클래스가 구현되는 방법에 대한 세부 정보가 알려지지 않도록합니다. 캡슐화는 정보 은닉, 객체 지향의 또 다른 핵심 개념을 강요합니다. Abstract 클래스는 다른 클래스에 의해 재사용 될 수있는 명세로서 만 사용된다. 추상 클래스에서 객체를 만들 수 없습니다. 객체를 생성 할 수있는 클래스는 concrete 클래스로 알려져 있습니다. 물론 인터페이스는 항상 추상적입니다. 응용 프로그램은 다양한 유형의 클래스 모음으로 구성됩니다. 이러한 클래스의 객체는 서로 상호 작용하여 응용 프로그램의 기능을 구현합니다. 클래스가 상호 작용하는 클래스를
공동 작업자 라고합니다. 다형성 (Polymorphism)
는 각 클래스가이 메소드를 적절하게 구현하면서 동일한 메시지에 응답하는 서로 다른 클래스의 능력입니다. MakeDrinkableFood에서 가져온 다음 행은이 개념을 보여줍니다. For (i = 1; i <= numberOfEatingVessels; i ++) HeatingVessel.Pour (EatingVessel objectAtIndex: i); 차를 만들 때 EatingVessel은 주전자 개체에 바인딩됩니다. 스프가 만들어지면 EatingVessel은 Tureen 개체에 바인딩됩니다.
이러한 개념을 분리하는 것이 유용합니다 캡슐화, 메타 클래스, 클래스, 유형, 객체, 상속 및 인터페이스의 개념은 모두 구조적 개념입니다. 프로그램의 구성 및 프로그램 작동 방식에 대해 알려주는 동작 개념에 대해 알려주는 구조적 개념으로 구성됩니다. 방법, 메시지 전달 및 다형성의 개념은 행동 개념입니다.