본문 바로가기
컴퓨터공학/프로그래밍

객체지향 프로그래밍 개념

by KISCH 2021. 1. 1.
반응형

 

UML

 

개발자와 고객이 필요로 하는 세부 내용을 소통하는데 사용되는 언어

단점 : 명확하지는 않다
상속 : 타 클래스를 기반으로 만들어지며, 중복되는 코드를 피할 수 있다.
다형성 : 서브 클래스가 슈퍼 클래스를 대신할 수 있도록 허용 -> 코드가 유연하고 쉽게 변경가능해진다.
캡슐화 : 프로그래밍 요소들을 더 크고, 더 추상적인 엔티티 안에 감싸는 프로세스, 정보 은닉, 관심의 분리

 

 

 

 

 

 

 

MVC

 

Model - View - Controller 패턴

모델은 소프트웨어 내에서 데이터를 의미, 뷰는 사용자에게 보이는 화면 내용, 모델과 뷰의 상호작용을 관리하는 것이 컨트롤러.

 

MVC

 

Model

- 데이터, 데이터 공급
프로토콜  (객체가 처리할 수 있는 메시지들의 규약)
1. 데이터 소스 및 델리게이트가 어떤 메시지에 응답해야하는지 정의

- 콜백 메서드 구현
데이터소스  (컨트롤에게 데이터를 제공)
1. 컨트롤과 데이터 사이에서 다리 역할. 
2. 컨트롤 요청 -> 데이터 제공 (델리게이터가 처리방법 제공)
3. 컨트롤-데이터 소스-델리게이트 패턴은 뷰-뷰컨트롤러 관계와 비슷
4. 실제 데이터는 데이터베이스, 프로퍼티 리스트, 이미지 파일 등 다양한 곳에 정장

- 델리게이트 (다른 객체들이 처리할 것 중 일부를 대신 처리하는 객체)
1. UI 컨트롤이 처리해야할 것을 담당
2. 데이터를 저장하거나 화면에 표시하는 등의 처리를 주로 담당

UIApplication 객체

View

- 데이터를 사용자에게 보여주는 화면
- IBOUTLET
1. IB(인터페이스빌더)를 통해 혹은 그냥 구현
2. 컨트롤과 연결(IBOutlet을 통해 코드와 UI요소를 연결)
3. 파일 소유자 객체와 메서드를 연결

- IBACTION : 이벤트의 처리를 위해서 호출될 수 있는 메서드임을 알려주는 표시
- NIB : 뷰를 생성하기 위해서 사용되는 파일의 이름 NIB(xib) 파일 (로드 시 UI객체에 대한 참조를 얻어온다)
- UIView 상속하는 클래스. UIWindow addSubView
- 뷰가 작동하도록 하는 것은 코드

 

UIViewController

 

- View를 가지고 있는 Control (View 클래스를 상속받음) : View와 Control 의 경계가 모호
- 뷰 핸들러 역활

 

Control

 

- 데이터의 입력이나 가공, 출력을 지시하는 객체
- UI객체들은 대부분 View의 기능을 동시에 가지고 있는 객체. -> View없이 Control만으로 화면을 구성 가능
- ??
1. 델리게이션
2. 타겟 - 액션
3. 노티피케이션

컨트롤러의 역할

 

MVC컨트롤러

 

 

 

 

관련포스트

 

객체지향프로그래밍

 

반응형

댓글