GoF์ ๋์์ธ ํจํด, ์ ๋ต ํจํด์ ๋ํด ์์๋ณธ๋ค.
ํด๋น ๊ธ์, ๋ค์์ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ดํดํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค.
ํต์ฌ ์์ฝ
- ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ๋ถ๋ฆฌํด์ฃผ๋ ํจํด
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐฉ์์ ๊ธฐ์กด์ ์์ค ์ฝ๋ ๋ณ๊ฒฝ ์์ด ์๋ก์ด ํด๋์ค ์ถ๊ฐ๋ง์ผ๋ก ํ์ฅ ๊ฐ๋ฅํจ
- ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ Composite Pattern์ ์ฌ์ฉํจ
์์
Code
main
Unit
Item
ItemList
Visitor
SumVisitor
AvgVisitor
ํ์ฉ์ฑ
- ๊ฐ์ฒด ๊ตฌ์กฐ์ ์ฒ๋ฆฌ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ์ ์ง๋ณด์์ ํ์ฅ์ฑ์ ํฅ์์ํฌ ์ ์๋ค.
- ๊ฐ์ฒด ๊ตฌ์กฐ๋ ๋์ผํ๋, ์ฐ์ฐ์ ์ถ๊ฐํ๊ณ ์ถ์ ๋
์๊ฐํด๋ณผ ์
- ์ฝ๋์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐ๋ ์ ์๋ค.
- ๊ตฌ์กฐ๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ์๋ก์ด ๋์์ ์ถ๊ฐํ ์ ์์ผ๋, ๊ฐ์ฒด ์์๊ฐ Visitor ์ธํฐํ์ด์ค์ ์์กดํ๊ฒ ๋๋ค.
Reference