ํฉํ ๋ฆฌ ๋ฉ์๋๋ ๋ฌด์์ผ๊น? ๋ฌด์์ด ์ข์๊น?
Factory Method
- ์ฌ์ฉํ ํด๋์ค๋ฅผ ์ ํํ ๋ชฐ๋ผ๋ ๊ฐ์ฒด ์์ฑ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ํจํด
- ์์ฑ์๊ฐ
private
์ด๋ผ ์์ฑ์ ๋ฌด์กฐ๊ฑด ์ ์ ํจ์๋ฅผ ํตํด์ ํด์ผํจ
- ํด๋น ์ ์ ํจ์์์ ์ปต์ ์ฉ๋์ ๊ฒฐ์ ํจ
์์ฑ์ ๋์ ์ ์ ๋ฉ์๋ ์ฌ์ฉ์ ์ฅ์
null
์ ๋ฐํํ ์ ์๋ค.
- ์์ฑ์๋ ์์ฑ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์์ธ๋ฅผ ๋์ง ์ ๋ฐ์ ์๋ค.
- swift๋ nilable initializer๊ฐ ๊ฐ๋ฅํ๋ค.
๋คํ์ ์ธ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด
- ์ปต ์ฌ์ด์ฆ๋ ๋๋ผ๋ง๋ค ๋ค๋ฅด๋ค.
- ๊ฐ์ small, medium, large์ฌ๋ ๊ฐ ๋๋ผ๋ง๋ค ํด๋น ๊ท๊ฒฉ์ด ๋ค๋ฅผ ์ ์๊ธฐ ๋๋ฌธ
- ์ด๋ฐ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๊ตฌํํ ๊น?
๋ฐฉ๋ฒ
createOrNull
์ ๋งค๊ฐ ๋ณ์๋ก country
๋ฅผ ๋ฃ๋๋ค.
- OO ์ ์ธ ๋ฐฉ๋ฒ์ ์๋
createOrNull
์ ๋คํ์ ์ผ๋ก ๋ง๋ ๋ค.
Country
์์ ์ด๋ฅผ ์ฌ์ ์ํ์ฌ ์ฌ์ฉ
- OO ์ ์ธ ๋ฐฉ๋ฒ
์์
createCupOrNull(CupSize size)
๋ ๊ฐ์ ์์ฑ์๋ผ๊ณ ๋ณผ ์ ์์
๋คํ์ ์ธ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด 2
Cup
๋ ์ถ์์ ์ผ ์ ์๋ค.
- ๊ตฌ์ฒด์ ์ธ ๊ฒ๋ถํฐ ๋ง๋ค์ด์ ํ์ํ๋ฉด ์ถ์ํํด๋ผ
- ์ฒ์๋ถํฐ ์ถ์์ ์ธ ํจํด์ ์ฌ์ฉํ์ง ๋ง๋ผ.
ํฉํ ๋ฆฌ ๋ฉ์๋์ ์ฅ์
- ํด๋ผ์ด์ธํธ๋ ๋ณธ์ธ์๊ฒ ์ต์ํ ์ธ์๋ฅผ ํตํด ๊ฐ์ฒด ์์ฑ์ด ๊ฐ๋ฅํ๋ค.
- ml๊ฐ ์๋, ์ฌ์ด์ฆ๋ก ์์ฑ ๊ฐ๋ฅ
- ์ค๋ฅ์ผ์
null
์ ๋ฐํํ ์ ์๋ค.
- ๋คํ์ ์ผ๋ก ๊ฐ์ฒด ์์ฑ์ด ๊ฐ๋ฅํ๋ค.
- ๊ทธ๋์ ๊ฐ์ ์์ฑ์ ํจํด์ด๋ผ๊ณ ๋ ํ๋ค.
Reference