์ฑ๊ธํด ํจํด์ด๋ ํด๋์ค์ ์ธ์คํด์ค๊ฐ ํ๋๋ง ์๋๋ก ํ๋ฉด์ ๊ทธ ํ๋์ ์ธ์คํด์ค๋ฅผ ์ ์ญ ์ ๊ทผ์ผ๋ก ์ง์ ํ๋ ๊ฒ์ ์ ๊ณตํ๋ ๋์์ธ ํจํด์ ๋๋ค. ์ฆ ํ๋์ ์์ฑ์๊ฐ ์ฌ๋ฌ๊ฐ ํธ์ถ๋๋๋ผ๋ ์ค์ ๊ฐ์ฒด๋ ํ๋์ด๊ณ ์ต์ด ์์ฑ ์ดํ์ ์ต์ด ์์ฑ์๊ฐ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ returnํ๋ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด์ ์ฐ๋ฆฌ๊ฐ swif๋ฅผ ํ๋ฉด์ ํ์์ ์ ๋ณด๋ฅผ ๋ฐ์์ผํ ์ํฉ์ด ์จ๋ค๊ณ ๊ฐ์ ํฉ์๋ค. 1VC๋ name์ ๋ฐ๊ณ 2VC๋ password๋ฅผ ๋ฐ๊ณ 3VC๋ฅผ ๋ฐ๋ ๋ค๊ณ ์๊ฐํด๋ณด์. ํ์์ฐ๋ฆฌ๋ ๋๋ถ๋ถ ๋ฐ์ ์ฒ๋ผ ํ ๊ฒ์ ๋๋ค.
Class UserInFo {
var name: String
var password: String
var age: Int
}
//1VC = name
Class 1VC {
let u = UserInFo()
u.name = "ํํ"
u.password = nil
u.age = nil
}
// 2VC = password
Class 2VC {
let u = UserInFo()
u.name = nil
u.password = "12345678"
u.age = nil
}
// 3VC = age
Class 3VC {
let u = UserInFo()
u.name = nil
u.password = nil
u.age = 18
}
์ ๊ฐ ์ํ๋ ๊ฐ์ ๊ฐ๊ฐ ํ๋์ธ๋ฐ ๋ง์ฝ ๋ฃ์ด์ฃผ์ง ์๋๋ค๋ฉด ์๋์ผ๋ก nil๊ฐ ๋๋ ์ ๊ฐ ์ผ์ผ์ด nil์ด๋ผ๋ ๊ฒ์ ๋ช ์ํด์ฃผ์ด์ผํฉ๋๋ค. ํ๋์ ์ธ์คํด์ค์ ์ ์ฅ๋์ง ์๊ณ ๊ฐ๊ฐ์ ์ธ์คํด์ค์ ์ ์ฅ๋ ๊ฒ์ ๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ์ฑ๊ธํค ํจํด์ ์ฌ์ฉํ๋ฉด ์ฝ๋๊ฐ ์๋ป์ง ์ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ์ฑ๊ธํค ํจํด์ ๊ฒฝ์ฐ ํ ์ธ์คํด์ค๊ฐ ์ ์ญ์ด๋์ด์ ์ด๋ค ํด๋์ค๋ ์๋ค๊ฐ๋ค ํ ์ ์์ต๋๋ค. ์์ ๋ง์ ํ๋ง๋๋ก ์์ ํ๋ฉด ์ ์ญ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ ์ ์ผ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
์ฑ๊ธํด ํจํด์ ์ฃผ๋ก Class์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ค๋ฐ์ฌ์ง๋ง ๋ฌผ๋ก ๊ตฌ์กฐ์ฒด๋ก ์ฌ์ฉํ์ง ๋ชปํ๋ค? ์ด๊ฑฐ๋ ์๋๋๋ค. ํ์ง๋ง ๊ตฌ์กฐ์ฒด๋ก ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ฑ๊ธํด ํจํด์์ ์ ์ผ ์ค์ํ ์ ์ผ ๊ฐ์ฒด์ ์ด๊ธ๋๊ฒ ๋ฉ๋๋ค. ๋ง์ฝ ๊ตฌใ ์กฐ์ฒด๋ก ์ฌ์ฉํ๋ฉด ์ธ์คํด์คํํ๊ฒ ๋ ๋ ๊ตฌ์กฐ์ฒด๋ ์ ์ผ ๊ฐ์ฒด๊ฐ ๋์ง ๋ชปํฉ๋๋ค. ํ์ง๋ง ๊ตฌ์กฐ์ฒด๋ฅผ ์ธ์คํด์คํ๋ง ํ์ง ์๋๋ค๋ฉด ๊ตฌ์กฐ์ฒด๋ฅผ ์ฑ๊ธํด ํํด์ฒ๋ผ ์ฌ์ฉํ ์ ์๊ธฐ๋ ํฉ๋๋ค.
- ์ ์ผํ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ๋ค์ํ ๊ฐ์ฒด๋ค์๊ฒ ๊ณต์ ๋๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
- ์ฌ์ฌ์ฉ์ฑ์ด ๋์์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ ์ ์๋ค๋ ์ฅ์ ๋ ์์ต๋๋ค.
- ์ฝ๋ ์ค๋ณต ๋ฐฉ์ง
- ์ฑ๊ธํด ํจํด์ ์ธ์คํด์ค๋ค ๊ฐ์ ๊ฒฐํฉ๋๊ฐ ๋์์ ธ์ OCP(๊ฐ๋ฐฉ ํจ์ ์์น)์ ์๋ฐ ํฉ๋๋ค.
- ๋ค์ค ์ค๋ ๋ ํ๊ฒฝ์ผ ๊ฒฝ์ฐ ์ฑ๊ธํด ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ๋ฒ ์์ฑํ์ง ์๋๋ก ์ฒ๋ฆฌํด์ผํฉ๋๋ค
- ์์ ๊ณผ ํ ์คํธ๊ฐ ์ด๋ ต์ต๋๋ค
๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ์ฌ์ฉํ๋
- UIScreen.main
- URLSession.shared
- UserDefaults.standard
- NotificationCenter.default
๋ฑ๋ฑ ์ ์ ๋ถ ์ฑ๊ธํด ํจํด์ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค.
Singleton Pattern ์์ ์ฝ๋
์ค๋๋ ๊ธด ๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.!!!!