Protocols and Delegates

권현석·2022년 12월 27일
0

prototocol and delegate

목록 보기
3/3

  • EmergencyCallHandler가 var delegate: AdvancedLifeSupport?를 가짐으로 인해 delegate가 누구든 상관없이 EmergencyCallHandler는 performCPR을 하도록 할 수 있다.
init(handler: EmergencyCallHandler) {
        handler.delegate = self
    }
  • 위의 코드는 paramedic이 출근하면 bleep을 차고 handler가 자신에게call을 보낼 수 있게 설정하는 과정이다. 이는 아래 코드에서 Doctor에도 똑같이 적용되고, Surgeon은 Doctor Class를 inherit하기 때문에 init이 따로 필요없다.

let alex = Surgeon(handler: emilio )
  • 위의 코드에 의해 alex는 출근하자마자 handler가 emilio인걸 알게된다.
    이 형태는 init(handler: EmergencyCallHandler)를 보고 알 수있다.
emilio.medicalEmergency()
  • 이 코드는 위의 alex를 Surgeon으로 선언했기 때문에 Surgeon Class의 performCPR 메서드를 수행하게 한다. 만약, alex가 Doctor로 선언되면 Doctor Class의 performCPR 메서드를 수행한다.
profile
wanna be an iOS developer

0개의 댓글