본문 바로가기
#모바일 [Mobile]/iOS

[iOS] 델리게이트 패턴 (Delegate Pattern)

by cy_mos 2022. 1. 20.
반응형
카테고리 (Category) 작성 날짜 (Write Date) 최근 수정 날자 (Recent Write Date) 작성자 (Writer)
iOS 2022.01.20. 23:11 2022.01.20. 23:11 Dev.Yang

 

델리게이트 디자인 패턴 (Delegate Design Pattern)

 

델리게이트 (Delegate) 디자인 패턴은 하나의 객체가 다른 객체를 대신해 동작 또는 조정할 수 있는 기능을 제공합니다. 또한 특정 상황에서 대리자에게 메시지를 전달하고 그에 적절한 응답을 받기 위한 목적으로 사용이 됩니다.

 

  • 델리게이션 디자인 패턴은 Foundation, UIKit, AppKit 그리고 Cocoa Touch  등 애플의 프레임워크에서 광범위하게 활용하고 있습니다.
  • 주로 프레임워크 객체가 위임을 요청하며, (주로 애플리케이션 프로그래머가 작성하는) 커스텀 컨트롤러 객체가 위임을 받아 특정 이벤트에 대한 기능을 구현합니다.
  • 델리게이션 디자인 패턴은 커스텀 컨트롤러에서 세부 동작을 구현함으로써 동일한 동작에 대해 다양한 대응을 할 수 있게 해줍니다.

부스트코스 iOS 앱 프로그래밍 - 델리게이션 디자인 패턴(Delegation Design Pattern)

 

델리게이트 (Delegate) 패턴을 이해하기 좋은 예제로는 UITextFieldDelegate 를 확인할 수 있습니다. 아래의 UITextFieldDelegate 처럼 사용자가 UITextField 선택하여 문구 편집을 시작하거나 종료하는 경우 대리자에게 메세지가 전달되어 해당 함수가 호출이됩니다.

 

func textFieldShouldBeginEditing(UITextField) -> Bool

func textFieldDidBeginEditing(UITextField)

func textFieldShouldEndEditing(UITextField) -> Bool

func textFieldDidEndEditing(UITextField, reason: UITextField.DidEndEditingReason)

func textFieldDidEndEditing(UITextField)

 

델리게이트 디자인 패턴 (Delegate Design Pattern) 추가적인 용어에 대한 부분은 아래와 같습니다.

 

  • 프로토콜 (Protocol) - 작업에 대하여 수행해야 하는 작업 목록
  • 전달자 (Sender) - 수신자에게 전달해야 하는 작업을 전달하는 객체
  • 수신자 (Receiver) - 전달자로부터 전달받은 작업을 처리하는 객체

🚀 REFERENCE

 

iOS 앱 프로그래밍

부스트코스 무료 강의

www.boostcourse.org

 

Apple Developer Documentation

 

developer.apple.com

 

Apple Developer Documentation

 

developer.apple.com

반응형

댓글