GoF์ ๋์์ธ ํจํด, ๋๋ฒ์งธ ๋น๋ ํจํด์ ๋ํด ์์๋ณธ๋ค.
ํด๋น ๊ธ์, ๋ค์์ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ดํดํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค.
ํต์ฌ ์์ฝ
๋ณต์กํ ๊ตฌ์ฑ์ ๊ฐ์ฒด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์์ฑํ๋ ํจํด
- ๋๊ฐ์ง ๊ฒฝ์ฐ์ ์์ฃผ ์ฌ์ฉ๋จ
- ์์ฑ์ ์ง์ ํด์ผ ํ๋ ์ธ์๊ฐ ๋ง์ ๋
- ๊ฐ์ฒด ์์ฑ์ ์ฌ๋ฌ๋จ๊ณ๋ฅผ ์์ฐจ์ ์ผ๋ก ๊ฑฐ์น ๋
- ๋จ๊ณ์ ์์๋ฅผ ๊ฒฐ์ ํด๋๊ณ ๊ฐ ๋จ๊ณ๋ฅผ ๋ค์ํ๊ฒ ๊ตฌํํ ์ ์๋๋ก ํจ
- ์ด ๊ธ์์๋ ์ฒซ๋ฒ์งธ ๊ฒฝ์ฐ๋ฅผ ์ฃผ๋ก ์ค๋ช ํจ
- ์ผ๋จ ์์๋ฅผ ๋จผ์ ๋ณด๊ณ , ์ข ํฉํ ๋ด์ฉ์ ๋ค์๊ธ์์ ์ ๋ฆฌํ๋ ๊ฒ์ ๋ชฉํ๋ก ํจ
์์
- ์ฒซ๋ฒ์งธ ์์์ ๊ฒฝ์ฐ, ์์ฑ์ ์ง์ ํ๋ ์ธ์๊ฐ ๋ง์ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค ํ๋ค.
- ์ฆ, ํน์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ๋ง์ ์ธ์๊ฐ ํ์ํ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค.
- ๊ทธ๋ ๋ค๋ฉด Builder๋ฅผ ์ด๋ค๋ฉด ์ด๋ฌํ ์ ์์ ์ฐ์๋ฅผ ๊ฐ๋๋ค๋ ๊ฒ์ธ๋ฐ, ์ค์ ์ฝ๋๋ฅผ ๋ณด๋ฉฐ ํ์ธํด๋ณด์.
- Source Code
- Car๋ 6๊ฐ์ ์ธ์๋ฅผ ๋ฐ๋๋ค.
- ์ด๋ฐ ๊ฒฝ์ฐ Builder๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด method chaining์ ํตํด ์ฒ๋ฆฌํ ์ ์๋ค.
- ๊ทธ๋ผ method chaining์ ์ ์ข์๊น?
- ์์ ์์๋ ๋ค๋ฅธ ๊ฒ๋ค์ ๋๋ถ๋ถ ๊ฐ์ ์ํฉ์์ ์ฐจ brand ์ด๋ฆ๋ง ๋ค๋ฅธ ๊ฒฝ์ฐ๋ฅผ ๋ง๋๋ ์์์ด๋ค.
- ๊ธฐ๋ณธ ๊ฐ์ ๋ชจ๋ ๊ฐ๊ฒ ๋ง๋ค๋, ์ด ๊ฐ์ ๋ถ๋ถ์ด ๋ฐ์๋ builder๋ฅผ ๊ฐ์ ธ์ ๋ฐ๋ก๋ฐ๋ก ์์ฐํด๋ฒ๋ฆด ์ ์๋ค.
- ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๊ณ์ํด์ ์ค๋ณต๋ ์ฝ๋๊ฐ ๋ง๋ค์ด์ก์ ๊ฒ์ด๋ค.