의존성 주입
- 멤버변수로 프로토콜을 가짐
- 해당 프로토콜을 준수하는 객체를 주입 가능
- ~
provider
라고 이름을 짓는게 대부분
예시
protocol Talking{
var saying : String{ get set }
func sayHi()
}
class BestTalk: Talking{
var saying: String = "베스트 토크"
func sayHi(){
print("허허 잘지냈어??")
}
}
class OldTalk: Talking{
var saying: String = "올드 토크"
func sayHi(){
print("오랜만이야")
}
}
class Friend{
var talkProvider: Talking
var saying: String{
get{
talkProvider.saying
}
}
init(_ talkProvider : Talking){
self.talkProvider = talkProvider
}
func sayHi(){
talkProvider.sayHi()
}
}