๋น๋ ํจํด์ ๋ณต์กํ ๊ฐ์ฒด๋ฅผ ์์ฑ๊ณผ์ ์ ๋ถ๋ฆฌํ์ฌ ๋์ผํ ์์ฑ ์ ์ฐจ์์ ์๋ก ๋ค๋ฅธ ํํ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋๋ ํจํด์ ๋๋ค.
๋น๋ ํจํด์ ๊ฐ๋จํ๊ฒ ์๊ฐํ๋ฉด ๊ณต์ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ง์ฝ ์์ดํฐ์ ๋ง๋๋ ๊ณต์ฅ์ด ๋์๊ฐ๋ค๊ณ ํ๋ฉด ์์ดํฐ์ ๊ฒฝ์ฐ ์์ ๋ด๋ถ๊ฐ 256์ธ์ง? 128์ธ์ง? ์ปฌ๋ฌ๋ red์ธ์ง blue์ธ์ง
์ด๋ฐ ๊ฒฝ์ฐ class๋ฅผ ๋ง๋ค๊ฒ ๋๋ฉด red์ผ ๊ฒฝ์ฐ ํด๋์ค๊ฐ ๋ง๋ค์ด์ง๊ณ blue์ธ ๊ฒฝ์ฐ๋ ํด๋์ค๊ฐ ๋ง๋ค์ด์ง๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ฐฉ๋ฒ์ ๊ณ์ธต๊ตฌ๋๊ฐ ํจ์จ์ ์ด์ง ๋ชปํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์์ํด๋์ค๋ฅผ ๋๋ ค์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด์๊ณ ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ํ์ง๋ง ๋ง์ฝ red ์ปฌ๋ฌ๊ฐ ์ธ๊ธฐ๊ฐ ์์ด์ง๋ฉด red์ ์์ ํด๋์ค๋ ์๋ฌด๋ ์ฐ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๊ฒฝ์ฐ ๋งค๊ฐ๋ณ์๊ฐ ์ฌ์ฉ๋์ง ์์์ ์์ฑ์ ํธ์ถ์ฝ๋๊ฐ ๋๋ฌ์์ง ๊ฒ์ ๋๋ค.ย
๊ทธ๋ผ ๋น๋ ํจํด์ ์ด๊ฒ์ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์? ๋ผ๊ณ ๋ฌผ์ผ๋ฉด ๋น๋ ํจํด์ ๋น๋๋ผ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฝ๊ฒ ์๊ฐํด์ ๊ณต์ฅ์์ ์ฒ์๋ถํฐ ํ๋์ ๊ฐ๋ง ๋ฐ๊ณ ๋ง๋ค์ด๋ด๋ ๊ฒ์ด ์๋ ๋น๋๋ฅผ ๋ง๋ค์ด์ ์ํ๋ ๊ฐ์ ๋ฃ์ผ๋ฉด ๋น๋๊ฐ ๋ชจ๋ ์ฌ๋ฃ์ ํน์ง์ ๋ง๊ฒ ํฉ์น๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ์ดํดํ์๊ธฐ ํธํฉ๋๋ค. ^^
์ฃผ๋ก ๋ณต์กํ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด์ ๊ฐ์ฒด๋ฅผ ์ ์ธํ๊ณ ๊ฐ์ด ๋ง์ด ๋ณ๋๋๊ฑฐ๋ ์ ์ธ๋ถ๊ฐ ๋ง์ ๊ฒฝ์ฐ
์ฌ์ ์ธ์ ์ด๋ ค์์ ๊ฒฉ์ ๊ฒฝ์ฐ ๋น๋ ํจํด์ ์ฌ์ฉํฉ๋๋ค.
๋น๋ ํจํด์ ์ธ์ ์ฌ์ฉํด์ผ์ง ํจ์จ์ ์ผ๊น?
์ฌ์ค swift ์กฐ๊ธ ํ์ ๋ถ๋ค์ ์กฐ๊ธ ๋นํฉํ์ ์ ์์ต๋๋ค. swift์๋ ๊ธฐ๋ณธ์ ์ผ๋ก init์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ฒ ํ์ ์ ๋ง๋ค๊ธฐ ์์๋ ์ด๊ธฐํ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ์ ํ ๋๊น์. ๋น๋ ํจํด์ ์ฌ์ค swift์์๋ ์์ฃผ ์ฌ์ฉํ๋ ํจํด์ ์๋๋๋ค. ํ์ง๋ง ์์์ ๋งํ๋ฏ์ด ํ๋กํผํฐ ๊ณ์๊ฐ ์์ฒญ ๋ง๊ณ ๋ณต์กํ ๊ฒฝ์ฐ ํ ๋ฒ์ฏค ์ฌ์ฉํด ๋ณผ ๋งํ ๊ฒ ๊ฐ์ต๋๋ค
Builder -> Product
๋น๋ ํจํด์ ๊ตฌ์กฐ๋ Product์ ์ด๋ฅผ ๋ง๋๋ Builder๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
Buider๋ ์ด๋ค ๊ฐ๋ค์ ์ธํ ํ๋ ๋ฉ์๋์ ์ต์ข ์ ์ผ๋ก Product๋ฅผ ๋ง๋๋ build() ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
๋๋ฌธ์ Product๊ฐ ๋ง๋ค์ด์ง๋ ๋ชจ๋ ๊ณผ์ ์๋ Builder์ ์ฑ ์์ด ๋ฐ๋ฆ ๋๋ค.
์ค๋๋ ๊ธด๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!!!!