Delegation?
- ๋๋ฆฌ๊ฒ์ด์ ์ด๋ ์ผ๋ถ ํด๋์ค์ ์ฑ ์์ ๋ค๋ฅธ ํด๋์ค์ ์ธ์คํด์ค์๊ฒ ์์ ๋๋ ์ ๋ฌํ ์ ์๋ ๋์์ธ ํจํด์ ์๋ฏธํ๋ค.
- ํ๋์ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ '๋์ฐ๋ฏธ' ์ญํ ์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ.
- ์ด๋ ํ ์ผ์ ์ํํ๊ฑฐ๋ ํน์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋๋ฐ ์์ด ๊ฐ์ฒด ์์ ์ด ์ํํ๋ ๊ฒ๋ณด๋ค ์คํ๋ ค ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์จ์ ์ด๊ธฐ ๋๋ฌธ
Delegation in iOS example
class NoteViewController: UIViewController, UITextViewDelegate {
var textView: UITextView
func viewDidLoad() {
textView.delegate = self // NoteViewController ์ธ์คํด์ค๋ textView์ delegate
}
}
- UIViewController๋ฅผ ์์๋ฐ๋ NoteViewController ํด๋์ค ์์ฑ
- NoteViewController ํด๋์ค๋ UITextViewDelegate ํ๋กํ ์ฝ ์ฑํ
- NoteViewController ์ธ์คํด์ค๊ฐ textView์ delegate๋ก ์ง์ ๋จ
- NoteViewController ํด๋์ค์์ ํ ์คํธ textView์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ์ ์๋ตํ๊ธฐ ์ํ ๋ค์ํ UITextViewDelegate์ delegateํจ์๋ฅผ ๊ตฌํํ ์ ์๋ค.
Delegation Pattern ์ฅ์
- ๋ธ๋ฆฌ๊ฒ์ด์ , ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด์ ํ ํด๋์ค์ ๋ค๋ฅธ ํด๋์ค์ ์ํธ์์ฉ์ ๊ฐ๋จํ ํ ์ ์๋๋ก ๋๋๋ค.
- ํด๋์ค ๊ฐ ์๊ตฌ ์ฌํญ์ ์ ๋ฌํด์ฃผ๋ ํ๋กํ ์ฝ๋ง ์์ผ๋ฉด ์ฐ๊ฒฐ์ด ์์ํด์ง๋ค.
- ์์ ํ ํด๋์ค ๋๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์์ํ ํ์๊ฐ ์๊ณ ๋ธ๋ฆฌ๊ฒ์ดํธ๋ ํ๋กํ ์ฝ์ ์ค์ ํ๋๊ฒ ๋ง์ผ๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ๋ฏ๋ก ๋งค์ฐ ์ ์ฐํ๋ค.
- ์ฆ, ์ ์ดํ์ง ์๋ ์ฝ๋ ๋ด์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ฅผ "์ฐ๊ฒฐ" ํ ์ ์๋ ์ข์ ๋ฐฉ๋ฒ์ด๋ค.
'iOS ๐ > iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Responding to the Launch of Your App (0) | 2021.02.24 |
---|---|
MVC, MVP, MVVM Pattern (0) | 2021.02.17 |
Design Pattern (0) | 2021.02.16 |
View hierarchy (0) | 2021.02.16 |
AutoLayout (0) | 2021.02.16 |