Delegation
Delegation은 프로그램의 어떤 Object가 다른 Object를 대신하거나 다른 Object와 협력하여 작동하는 패턴
Delegation Object는 다른 Object(대리자)에 대한 참조를 유지하고 적절한 시간에 해당 Object에 메세지를 보냄
메세지는 Delegate Object가 처리하려고 하거나 방금 처리한 이벤트를 Delegator에게 알림
Delegate는 프로그램에 있는 self 또는 다른 Object의모양이나 상태를 업데이트하여 응답할 수 있고 이벤트가 처리되는 방식에 영향을 주는 값을 반환할 수 잇음
Delegation and the Cococa Frameworks
- Delegating Object는 사용자 컨트롤 Objectdla.
- weak reference를 유지
- in a garbage-collected environment, 강한 참조를 유지함
Delegation and Notifications
- 대부분의 코코아 프레임워크 클래스의 delegate는 자동으로 Notification Observer로 등록
Data Source
- Delegate는 프로토콜을 채택하고 최소한 해당 프로토콜의 필수 메소드를 구현해야 함
- 데이터 소스는 Delegate 뷰에 제공하는 모델 개체의 메모리를 관리하는 역할을 함