본 블로그는 개인적인 공부 및 저장의 용도 작성됐습니다.
Delegate : 위임하다, 대리하다
델리게이트 패턴은 디자인 패턴중 하나로 어떤 객체가 해야할 일을 대신 해줄 때 사용한다.
예를 들면 Boss Class와 Intern Class가 있다고 치자. Boss Class는 회사와 미팅을 하는 업무를 한다. 미팅이 끝나면 다른 회사로 미팅을 가야하기 때문에, 미팅한 결과를 Intern Class에게 넘겨주면 Intern Class는 그 결과를 가지고 엑셀에 정리한다.
여기서 Boss의 Delegate는 Intern이 되는 것이다.
즉 Delegate는 Boss는 Boss의 업무만, Intern은 Intern의 업무만 하기 위해 Boss의 데이터를 Intern에게 넘겨주어 각자의 역할을 분리하는 역할을 한다.
이렇게 어떠한 업무가 끝났을 때 그 data를 처리해주는 패턴으로는 Delegate, Notification, KVO(Key-Value Observing) 등 이 있다.
//Boss는 Intern에게 엑셀로 정리해야할 업무를 줌
protocol ExcelDelegate {
func takeBossesJob()
}
Class InternViewController: UIViewController, ExcelDelegate {
//2,3번 작업 내용 작성
}
//in Intern Class
var boss: Boss? = Boss()
boss.delegate = self
//in Intern Class
func takeBossesJob() {
//do Something
}
참조
https://you9010.tistory.com/275
https://magi82.github.io/ios-delegate/
https://velog.io/@delmasong/Delegate-pattern-in-iOS-x1k6f9jzx8
https://baked-corn.tistory.com/23