- Delegate Patter์ ๋ํด ์ค๋ช ํ์์ค
- Notification ๋์๋ฐฉ์ ๋ฐ ํ์ฉ๋ฐฉ์์ ๋ํด ์ค๋ช ํ์์ค
Delegate, Notification๊ทธ๋ฆฌ๊ณ KVO(Key Value Observing)๊น์ง ์ธ๊ฐ์ง ํจํด ๋ชจ๋ ํน์ ์ด๋ฒคํธ๊ฐ ์ผ์ด๋๋ฉด ์ํ๋ ๊ฐ์ฒด์ ์๋ ค์ฃผ์ด ํด๋น๋๋ ์ฒ๋ฆฌ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ์ง๊ณ ์๋ค.
์์กด๊ด๊ณ
- Delegate๋ ์์๋๋ ๊ฐ์ฒด์ ์์ํ๋ ๊ฐ์ฒด๊ฐ์ 1:1 ๊ด๊ณ๋ฅผ ๋๋ค.
- Notification์ ์๋ฆผ์ ๋ณด๋ด๋ ๊ฐ์ฒด์ ๋ฑ๋ก๋ ๊ฐ์ฒด๋ค ๊ฐ์ 1:n ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ค.
์๋
- Delegate๋ ํน์ protocol์ ๊ตฌํํจ์ผ๋ก์จ ์์ํ๋ ๊ฐ์ฒด์ ๋ํด ์ ํ์ ์์ด ํ๋กํ ์ฝ์ ํตํด ๋์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- Notification์ ํ๋์ ๊ณต์ ๋๋ default NotificationCenter ๊ฐ์ฒด์ observer๋ฅผ ๋ฑ๋กํจ์ผ๋ก์จ ์ ๋ณด๋ฅผ ๋ธ๋ก๋์บ์คํธํ๊ณ , observer๋ค์ ์๋์ ์ผ๋ก ์ ๋ณด๋ฅผ ๋ฐ๋ ๊ฐ๋ ์ด๋ค. ํ๋์ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ specificํ notification๋ค์ ๋ํด ๊ฐ๋ณ์ ์ผ๋ก ๋ฑ๋ก์ ๊ฐ๋ฅํ์ง๋ง, ๊ฐ์ฒด๊ฐ ์ํ ๋ ํน์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค๊ฑฐ๋ ์ ๋ณด๋ฅผ ๋ฐ์์ฌ ์๋ ์๋ค.
์ฌ์ฉ
- iOS์์ Delegate๋ ์ฃผ๋ก MVC ํจํด์ ๋ง์กฑํ๊ธฐ ์ํด View์ ViewController ์ฌ์ด์์ ์ฌ์ฉ๋๊ฑฐ๋, ํ๋ ์์ํฌ๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉ์๋ค์ด ๋ํ ์ผํ ๋ด์ฉ์ ์์ง ๋ชปํ๋๋ผ๋ ํ๋กํ ์ฝ์ ํตํด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ค.
- ๋ฐ๋ฉด Notification์ ํน์ ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ๊ฐ์ฒด์ ์ ๋ฌ๋์ด์ผ ํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ค. register-> post-> receive์ ๊ฐ๋จํ ๋ฉ์ปค๋์ฆ์ ๊ฐ์ง๊ณ ์์ง๋ง observer๋ค์ด ๋ง์์ง๋ฉด ์ํธ์์ฉํ๋ ๊ฐ์ฒด๋ค๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ ํ๊ธฐ ์ด๋ ค์์ง๋ค๋ ๋จ์ ์ด ์๋ค.