Last updated
Last updated
Part-Whole(๋ถ๋ถ-์ ์ฒด) ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํํํ๊ธฐ ์ํด ๊ฐ์ฒด๋ค์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ๋ ํจํด
Client๊ฐ ๊ฐ๊ฐ์ ๊ฐ์ฒด(๋ถ๋ถ ๊ฐ์ฒด)์ ๊ทธ๋ฃน ๊ฐ์ฒด(์ ์ฒด ๊ฐ์ฒด)๋ฅผ ๋์ผํ๊ฒ ์ทจ๊ธํ ์ ์๋๋ก ํ๋ค.
Component
- ๋ถ๋ถ ๊ฐ์ฒด์ ์ ์ฒด ๊ฐ์ฒด์ ๊ณตํต ์ธํฐํ์ด์ค๋ก Child ๊ฐ์ฒด์ ์ ๊ทผํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํจ
Leaf
- ๋ถ๋ถ ํด๋์ค๋ก, Composite ๊ฐ์ฒด์ ๋ถํ์ผ๋ก ์ค์ ๋๋ฉฐ Child ๊ฐ์ฒด๋ฅผ ๊ฐ์ง์ง ์์
Composite
- ์ ์ฒด ํด๋์ค๋ก, ๋ณต์ ๊ฐ์ Component๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฉฐ ๋ณธ์ธ ๋ํ Component์ ํ์ ํด๋์ค์ด๋ค. ๋ฐ๋ผ์, Child๋ก ๋ณต์ ๊ฐ์ Leaf์ ๋ณต์ ๊ฐ์ Composite๋ฅผ ๊ฐ์ง ์ ์๋ค.
Client
- ๋ชจ๋ ๊ฐ์ฒด๋ค์ ๋ถ๋ถ-์ ์ฒด ์ฌ๋ถ์ ๊ด๊ณ ์์ด Component ๊ฐ์ฒด๋ฅผ ํตํด ์ด์ฉํ๋ ๊ฐ์ฒด
๋ฆฌ๋ ์ค์ ๋๋ ํ ๋ฆฌ-ํ์ผ ๊ตฌ์กฐ
๋ฆฌ๋
์ค๋ ๋๋ ํ ๋ฆฌ, ์ผ๋ฐ ํ์ผ(ํ
์คํธ, ์ด๋ฏธ์ง, ์คํ ํ์ผ ๋ฑ)๋ค์ ๋ชจ๋ ํ์ผ
๋ก ์ทจ๊ธํ๋ค. ๋ฐ๋ผ์ ๋๋ ํ ๋ฆฌ๋ ๋ณธ์ธ๋ ํ์ผ์๊ณผ ๋์์ ํ์ผ์ ํฌํจํ ์ ์๋ค.
์ฌ๊ธฐ์ ์ด๋ค์ ๋ชจ๋ ํต์นญํ๋ File์ด Component, File์ ํฌํจ๋๋ฉฐ File์ ๊ฐ์ง ์ ์๋ Directory๊ฐ Composite, ์ผ๋ฐ์ ์ธ File์ ํด๋นํ๋ CommonFile์ด Leaf๊ฐ ๋ ์ ์๋ค.