반응형
Delegate 란?
어떤 객체가 하는 일을 부분적으로 확장해서 대신처리 하는 것
객체 지향 프로그래밍에서 하나의 객체가 모든 일을 처리하는 것이 아니라 처리 해야 할 일 중 일부를 다른 객체에 넘기는 것
대신 처리해줄 객체 / 처리 하라고 시킨 객체
만약 ? 고객이 여러 곳에서 사용할 수 있는 메세지 창을 하나만든다면?
-> 메세지 창에 버튼이 있고 누르면 뷰컨트롤러는 무슨 버튼이 눌렸는지 체크를 해서 -> 버튼 이벤트가 발생하면 일을 처리한다.
선언을 한 후에
viewDidLoad()함수에 textField.delegate = self를 쓰게 되는데
이 의미는 대리가자 누군지 알려주는 과정이다. textfield의 일은 내가(viewController)가 할게 라는 의미 -> 너한테 이벤트 발생하면 알려줄게! 라는 의미
https://zeddios.tistory.com/8?category=682195
왜 사용할까?
ex> 고객이 어디서든 메세지 박스를 띄우고 눌렀을때 어떤 작업을 처리할수 있게 해달라고 했음 -> 그 작업을 메세지 박스 내에서 처리해주려고 한다. 그런데 메세지박스를 쓰는 부분마다 처리해야할 내용이 다 다르다면?
메세지박스를 쓰는 부분마다 처리해야할 내용이 다르면 -> 똑같이 생긴 메세지박스를 여러가 만들어서 처리해야한다. 물론 상속을 받아 처리할 수 있지만 클래스가 늘어난다.
하지만 델리게이트 패턴을 사용한다면 ? 메세지 박스는 대신 일을 처리할 델리게이트 구현객체에 대해 따로 신경쓰지 않아도 된다.
반응형
'프로그래밍 언어 > Swift' 카테고리의 다른 글
swfit 실습 day02 (0) | 2020.02.01 |
---|---|
swift 기본 문법 (0) | 2020.01.31 |
Swift 언어란? (0) | 2018.11.25 |
swift 기본 문법 (0) | 2018.11.19 |