๋ ํฐ ๊ธฐ๋ฅ์ ๊ฐ์ง ๊ฐ์ฒด๋ ํด๋์ค๋ฅผ ์์ ๊ฐ์ฒด๋ ํด๋์ค๋ก ์กฐํฉํ์ฌ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ง๋๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ
Composition์๋ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๊ฐ๋ ์ด ํฌํจ๋ฉ๋๋ค:
- Has-A ๊ด๊ณ: ํน์ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ โ์ฌ์ฉโํ๋ค๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค. ์๋์ฐจ ๊ฐ์ฒด๋ ์์ง ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์์ ๊ฒ์ด๋ค.
- ์ฌ์ฌ์ฉ์ฑ๊ณผ ๋ชจ๋ํ: ์ฌ์ฉํ๋ค๋ ๊ฐ๋ ์ด ๋ค์ด๊ฐ์ผ๋ฏ๋ก, ๋น์ฐํ ์ด๋ฅผ ๋ผ์ด๋์ ๊ฑฐ๋ผ๋ ์์์ ํ ์ ์๋ค. ๋ผ์ด๋ธ๋ค๋ ๊ฒ์ ๊ณง ๋ค๋ฅธ ๊ฐ์ฒด์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํจ์ ์๋ฏธํ๋ค.
- ์์กด์ฑ ๊ด๋ฆฌ: ์์์ ์ด๋ป๊ฒ ๋ณด๋ฉด ๊ต์ฅํ ๊ฐ์ฒด๊ฐ์ ๋์ ํ ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ฒ ๋ง๋ ๋ค. Composition์ โ์กฐํฉโ์ ๊ฐ๋ ์ผ๋ก ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ ๋ณด๋ค ๊ฒฐํฉ๋๊ฐ ์ค์ด๋ ๋ค.
- ๋์ ์ธ ๊ตฌ์ฑ: ๋ฐํ์์ ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์๋ค. ์ด๋ ์ ์ฐํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์์คํ ์ ๋ง๋๋ ๋ฐ ๋์์ด ๋๋ค.
์๋ฅผ ๋ค์ด, ์ํํธ์จ์ด์์ ๊ทธ๋ํฝ ํธ์ง๊ธฐ๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ, ๋ค์ํ ๋ํ(์, ์ฌ๊ฐํ, ์ ๋ฑ)์ ํํํ๋ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ , ์ด๋ฌํ ๋ํ๋ค์ ์กฐํฉํ์ฌ ๋ณต์กํ ๊ทธ๋ฆผ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ Composition์ ์ฌ์ฉํ์ฌ ๊ทธ๋ฆผ์ ๋ค์ํ ๋ํ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์์ ๋ํ๋ผ ์ ์์ต๋๋ค.
Composition์ ์์๊ณผ ํจ๊ป ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ค์ํ ๊ฐ๋ ์ค ํ๋์ด๋ฉฐ, ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ค๊ณํ๊ณ ์ ์ฐํ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.