시작전에
프로토콜이 무엇인가?
프로토콜 지향프로그래밍이 무엇인가?
스스로에게 질문을 해보고
만약, 잘 모르겠다면 델리게이트패턴 전에
프로토콜에 대해 더 공부해야한다는 것을 잊지 말아야한다.
프로토콜지향 프로그래밍에 대해서 적은 글인데 생각이 안나면 이 글부터 다시 읽고 오자!
https://i-yongil.tistory.com/7
델리게이트 패턴이란?
이벤트처리의 방법중 하나이며
iOS앱개발에서 기본적인, 가장 중요한 패턴이라고 할 수 있다.
애플이 제공하는 프레임워크를 제대로 활용하려면 정확히 알고 있는 것이 좋다. - (모조리 외운다고 해도 전혀 아깝지 않은 개념이다.)
한마디로 설명하자면, 하나의 객체가 다른 객체의 기능을 대신처리(== 위임) 한다는 개념이다.
물론, 델리게이트 패턴을 쓰지 않고(== 위임하지 않고) 직접적으로 연결을 할 수도 있다.
하지만 그럴 경우에는 의존성이 높아지고 코드의 재사용성이 낮아지기 때문에 되도록이면, 아니! 무조건 델리게이트 패턴을 쓰도록 하자!
중요한 패턴치고는 개념 자체가 어렵지는 않다. - (모조리 다 외우자!)
델리게이트패턴으로 구현하는 기능은 대표적으로 테이블뷰, 컬렉션뷰와 같은 리스트 형태의 뷰이다.
델리게이트 패턴은 메서드의 접미어 부분이 ~ datasource, ~ delegate 라고 씌어져 있다. - (구분하기 쉽다.)
datasource(데이터소스)는 데이터베이스나 서버에 접근해 데이터의 개수를 알려준다.
즉, 데이터소스는 필요한 데이터를 제공하는 객체이다.
delegate(델리게이트)는 이벤트를 대신 처리하는 객체이다.
델리게이트 패턴은 프로토콜이기 때문에 애플이 만들어놓은 형식에서 메서드 구현만 해놓으면 된다.
개발자는 구현만 해놓을 뿐, 직접호출하지 않는다. - (필요한 시점에 알아서 호출되는 방식이다.)
델리게이트 패턴은 3가지의 순서로 구현하면 되는데,
1. 개발자문서를 보며 델리게이트패턴이 필요한지 보고, 필요하다면 프로토콜 레퍼런스를 확인해 어떤 메서드를 구현하면 되는지, 필수 구현 메서드는 어떤 것인지 알아본다.
2. 객체를 연결한다.(스토리보드, 코드 두가지 방법 모두 가능) - 보통은 VC를 델리게이트 객체로 연결한다.
3. 델리게이트로 지정한 객체에서 프로토콜에 선언된 메서드를 구현한다.
이렇게 하면 델리게이트 패턴의 구현은 끝이다.
'iOS' 카테고리의 다른 글
| MVVM패턴 (0) | 2022.11.11 |
|---|---|
| 웹뷰 구현하기(WebView) - UIKit (0) | 2022.11.06 |
| Lottie(애니메이션 라이브러리) (0) | 2022.10.31 |
댓글