Delegation가 무엇일까??
클래스나 구조체가 책임을 일부 다른 타입의 인스턴스로 전달 할 수 있게 하는 디자인 패턴.
그래서 Delegation이 뭐야??
너가 해야할 일을 대신 해줄게!!
구현하기 위해 필요한 것들에 대해서 생각해보자
- 프로토콜 - 대리자가 수신자에게 전달할 내용의 규칙
- 수신자 - 대리자에게 넘기는 곳
- 대리자 - 수신자를 대신해서 처리할 대상
왜 사용할까??
Delegation 패턴은 역활에 대한 책임을 간결하게 표현하기 위해 각각에 대한 책임을 설정해주는 디자인 패턴.
Example Delegation code
protocol WorkDelegate {
func drinkCoffee()
}
class Boss: WorkDelegate {
func drinkCoffee() {
print("보스: 커피 마시기")
}
}
class Secretary {
var boss: WorkDelegate?
func makeCoffeeBoss() {
print("비서: 커피 만들어 드리기")
boss?.drinkCoffee()
}
}
let secretary = Secretary()
let Brad = Boss()
secretary.boss = Brad
secretary.makeCoffeeBoss()
'iOS > Swift' 카테고리의 다른 글
Swift) iOS 메모리 영역 확인하기(Stack) (0) | 2022.07.25 |
---|---|
Swift) 네트워크와 무관한 URLSession Unit Test를 하는 목적 (0) | 2022.07.23 |
Swift) CollectionView란?? (0) | 2022.07.23 |
Swift) @Escaping 클로저란?? (0) | 2022.07.14 |
Swift) 클로저가 멀까?? (0) | 2022.07.13 |