[iOS] delegate 패턴
delegate 패턴
- 델리게이트 패턴이란?
- 델리게이트 패턴의 특징
- 실전
💻 델리게이트 패턴이란?
- 클래스나 구조체가 자신의 책임이나 임무를 다른 타입의 인스턴스에게 위임하는 패턴
- 하나의 객체가 모든일을 처리하는 것이 아니라, 처리해야 할 일 중 일부를 다른 객체에게 넘기는 것을 말함
💻 델리게이트 패턴의 특징
- 기능을 처리할 객체를 델리게이트로 설정
- 특정 이벤트가 발생할 때 이를 델리게이트에 의해 위임된 본래의 객체로 전달해 주는 역할
- 특정 이벤트가 발생했을 때 알려 주는 방법이 델리게이트 메소드를 사용하는 것
- 델리게이트 패턴을 사용하는 모든 객체는 델리게이트 메소드를 정의한 프로토콜을 가지고, 이를 델리게이트 프로토콜이라고 한당
- 이는 객체 이름 뒤에 Delegate를 붙여서 정의함
💻 이해가 안 되쟈나!!!!! 쉽게 정리해!!!!!!
위임하는 객체
- 위임하는 객체는 일을 시키는 사람이라고 생각하면 편함!
- delegate 변수 선언 해 주기
- delegate 변수를 이용하여 이러한 일을 시킬 거야라고 알려 줘야 함
위임을 받는 인스턴스
- 위임을 받아 일을 하는 사람
- 델리게이트 프로토콜을 채택
- 인스턴스.delegate = self -> 자신이 위임을 받겠다, - 자신이 처리하겠다고 선언해 줘야 함, 위임자의 delegate 변수와 자신을 연결해 주는 코드임
- 프토토콜의 메소드를 전부 구현해 주기
적용해 보기
- 델리게이트 패턴이란?
- 델리게이트 패턴의 특징
- 실전
(https://velog.io/@zooneon/Delegate-패턴이란-무엇일까 님 예시 참고하였습니당)
위임자: 알바 사장님
위임 받는 사람: 알바하는 나 ㅜ.ㅜ(카페 알바생)
protocol CafeDelegate { //프로토콜엔 기능을 구현해야 합니다
func americanoShot() //아메리카노 만드는 나
func cashier() //계산하는 나
}
//사장님 - 위임하는 객체
class Boss {
//delegate 변수 선언
//뒤 프로토콜에 있는 일들을 위임하겠다고 함
var delegate: CafeDelegate?
//위임할 인스턴스에게 이러한 일들을 시키겠다고 선언함
func order() {
self.delegate?.americanoShot()
self.delegate?.cashier()
}
}
class PartTimerMini: CafeDelegate { //프로토콜 채택해줌
init(mini: Boss) {
mini.delegate = self //mini가 위임받겠다고 선언함
}
//프로토콜 메소드 완성
func americanoShot() {
print("아메리카노 샷 내리는 중")
}
func cashier() {
print("계산하는 중")
}
}
출처: 꼼꼼한 재은씨의 Swift 기본편
https://velog.io/@zooneon/Delegate-패턴이란-무엇일까
야곰 SWIFT 스위프트 프로그래밍
Author And Source
이 문제에 관하여([iOS] delegate 패턴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@vvkkiie/Swift-Protocol-Delegate저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)