티스토리 뷰

iOS Programming

[iOS] Delegate Pattern

dev-Jun 2023. 2. 12. 18:05

정의

위임자를 갖고 있는 객체가 다른 객체에게 일을 위임하는 형태의 디자인 패턴

패턴 요소

  • delegate를 필요로 하는 인스턴스 (UITableView)
  • delegate 요구사항을 정의한 프로토콜 (UITableViewDelegate)
  • delegate로서 동작하는 인스턴스 (UIViewController)

사용하는 이유

  • UI요소(TableView)에서 Delegate 패턴을 사용하는 이유
    • Cell이 탭되었을 때 어떤 행동을 할지는 상황에 따라 다르므로 개발자가 코드를 작성해야함
    • 개발자가 UI요소의 내부 코드를 수정할 수 없음
    • 따라서 다른 객체에서 해당 코드를 작성한 뒤, 테이블 뷰가 그 객체의 코드를 호출해줘야 함
  • 커스텀으로 Delegate 패턴을 사용하는 이유
    • 코드의 유연성과 재사용성을 높일 수 있음
      • 만약 delegate 패턴을 사용하지 않고 처리한다면, 이 기능이 필요한 객체마다 직접 구현을 해서 넘겨줘야함 (상황에 따라서 어떻게 처리할지 다르기 때문)
      • 사용한다면, 가지고 있는 delegate를 통해서 시키기만 하면 됨
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함