GoF์ ๋์์ธ ํจํด, ์ ๋ต ํจํด์ ๋ํด ์์๋ณธ๋ค.
ํด๋น ๊ธ์, ๋ค์์ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ดํดํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค.
ํต์ฌ ์์ฝ
- ์คํ ์ค์ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ
์์
Code
main
SumPrinter
SumStrategy
SimpleSumStrategy
GaussSumStrategy
ํ์ฉ์ฑ
- ์๊ณ ๋ฆฌ์ฆ์ ๋ณํ์ด ํ์ํ ๋ (์ฌ๋ฌ๊ฐ ์ผ ๋)
๊ฒฐ๊ณผ
- ์ฅ์
- ์กฐ๊ฑด๋ฌธ์ ์์จ ์ ์๋ค.
- ์๋ธํด๋์ฑ์ ์ฌ์ฉํ์ง ์์ ์ ์๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ ์์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ๊ตฌํ์ ์ ํ์ด ๊ฐ๋ฅํ๋ค.
- ๋จ์
- ํด๋ผ์ด์ธํธ๋ ์๋ก ๋ค๋ฅธ ์ ๋ต๋ค์ ๋ํด ์ดํดํด์ผ ํ๋ค. (์ฅ๋จ์ ์ ๋ํด)
- Strategy์ Context ์ฌ์ด์ ์์ฌ์ํต ์ค๋ฒํค๋๊ฐ ์๊ธด๋ค. ๊ฒฐํฉ๋๊ฐ ๋์์ง ์ ์๋ค.
- ๊ฐ์ฒด์๊ฐ ์ฆ๊ฐํ๋ค.
์๊ฐํด๋ณผ ์
- ์ต์ ํ๊ฐ ํ์ํ ๋ถ๋ถ์ ๋ํด ์ด๋ฐ ํจํด์ ์ฌ์ฉํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ ์ฅ๋จ์ ์ด ๋ช
ํํ๋ค๋ฉด, ๊ตฌํ์ฒด๋ฅผ ๋ ๊ฐ ๋๊ณ ์ํฉ์ ๋ฐ๋ผ ์ ํํ๋๋ก ๋ง๋ค๋ฉด ์ข๊ฒ ๋ค.
Reference