11์ฅ์์๋ ์ฝ๋ ์ฌ์ฌ์ฉ์ ๋ฐฉ๋ฒ์ผ๋ก ํฉ์ฑ์ ๋ํด ์๊ฐํ๋ค. ์์์ด ๊ตฌํ์ ๋ํ ๋์ ๊ฒฐํฉ๋๋ฅผ ์ ๋ฐํ๋ ๋ฐ ๋ฐํด ํฉ์ฑ์ ์ฌ์ฉํ๋ฉด ํผ๋ธ๋ฆญ ์ธํฐํ์ด์ค์ ๋ํด ๋์จํ ๊ฒฐํฉ๋๋ฅผ ์ ์งํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค๊ณ๋ฅผ ์ ์ฐํ๊ฒ ๋ง๋ค ์ ์๋ค๋ ์ฌ์ค์ ์ค๋ช ํ๋ค.
๊ตฌ๋ถ | ์์ (class inheritance) | ํฉ์ฑ (object composition) |
์ฝ๋ ์ฌ์ฌ์ฉ ๋ฐฉ๋ฒ | ๋ถ๋ชจ ํด๋์ค์ ์์ ํด๋์ค ์ฐ๊ฒฐ | ์ ์ฒด๋ฅผ ํํํ๋ ๊ฐ์ฒด๊ฐ ๋ถ๋ถ์ ํํํ๋ ๊ฐ์ฒด ํฌํจ -> ๋ถ๋ถ ๊ฐ์ฒด ์ฝ๋ ์ฌ์ฌ์ฉ |
์์กด์ฑ | ์ปดํ์ผํ์์ ํด๊ฒฐ๋จ -> ์ปดํ์ผํ์์ ๊ฒฐ์ ๋ ์์ ํด๋์ค์ ๋ถ๋ชจ ํด๋์ค ์ฌ์ด์ ๊ด๊ณ๋ ๋ณ๊ฒฝ ๋ ์ ์์ -> ์์ ํด๋์ค์ ๋ถ๋ชจ ํด๋์ค์ ๋ค์ํ ์กฐํฉ์ด ํ์ํ ๊ฒฝ์ฐ ์กฐํฉ์ ์๋งํผ ์๋ก์ด ํด๋์ค๋ฅผ ์ถ๊ฐํด์ผ ํจ -> ํด๋์ค ํญ๋ฐ/์กฐํฉ์ ํญ๋ฐ ๋ฌธ์ ์ผ๊ธฐ(class explosion/combinational explosion) |
๋ฐํ์์ ํด๊ฒฐ๋จ -> ๋ฐํ์์ ๊ฐ์ฒด ๊ด๊ณ ๋ณ๊ฒฝ ๊ฐ๋ฅ : ์กฐํฉ์ ๊ตฌ์ฑํ๋ ์์๋ค์ ๊ฐ๋ณ ํด๋์ค๋ก ๊ตฌํํ ํ ์คํ ์์ ์ ์ธ์คํด์ค๋ฅผ ์กฐ๋ฆฝํ๋ ๋ฐฉ๋ฒ |
๊ด๊ณ | is-a ํด๋์ค ์ฌ์ด์ ์ ์ ๊ด๊ณ |
has-a ๊ฐ์ฒด ์ฌ์ด์ ๋์ ๊ด๊ณ |
ํน์ง | ๋ถ๋ชจ ํด๋์ค์ ๋ด๋ถ ๊ตฌํ์ ์์กด | ํผ๋ธ๋ฆญ ์ธํฐํ์ด์ค์ ์์กด |
๋ณ์นญ | ํ์ดํธ๋ฐ์ค ์ฌ์ฌ์ฉ (๋ถ๋ชจ ํด๋์ค์ ๋ด๋ถ๊ฐ ์์ ํด๋์ค์ ๊ณต๊ฐ) |
๋ธ๋๋ฐ์ค ์ฌ์ฌ์ฉ (๊ฐ์ฒด์ ๋ด๋ถ๋ ๊ณต๊ฐ ๋์ง ์๊ณ ์ธํฐํ์ด์ค๋ฅผ ํตํด์๋ง ์ฌ์ฌ์ฉ ๋จ) |
ํฉ์ฑ์ ์ฅ์ ?
- ์์ ์ฑ๊ณผ ์ ์ฐ์ฑ
- ๊ตฌํ์ ๋ํ ์์กด์ฑ์ ์ธํฐํ์ด์ค์ ๋ํ ์์กด์ฑ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ
=> ์ฆ, ํด๋์ค ์ฌ์ด์ ๋์ ๊ฒฐํฉ๋๋ฅผ ๊ฐ์ฒด ์ฌ์ด์ ๋ฎ์ ๊ฒฐํฉ๋๋ก ๋์ฒด ๊ฐ๋ฅ
- ์์์ด ์ด๋ํ๋ 3๊ฐ์ง ๋ฌธ์ ์ ํด๊ฒฐ ๊ฐ๋ฅ
1. ๋ถํ์ํ ์ธํฐํ์ด์ค ์์ ๋ฌธ์
2. ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ์ ์ค์์ฉ ๋ฌธ์
3. ๋ถ๋ชจ ํด๋์ค์ ์์ ํด๋์ค์ ๋์ ์์ ๋ฌธ์
๊ทธ๋ผ ์์์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์ธ์ ์ธ๊ฐ?
- ์์์ ๊ตฌํ ์์๊ณผ ์ธํฐํ์ด์ค ์์์ผ๋ก ๋๋ ์ ์๋๋ฐ ์ง๊ธ๊น์ง ๋ณธ ์์์ ๋จ์ ์ ๊ตฌํ ์์์ด๋ค. 13์ฅ์ ์ธํฐํ์ด์ค ์์์ ๋ํด ๋ค๋ฃฌ๋ค๊ณ ํ๋ ๊ทธ๋ ์์์ ์ธ์ ์ฌ์ฉํด์ผ ํ๋์ง ์ ์ ์์ ๊ฒ ๊ฐ๋ค.
// TODO
๋ฏน์ค์ธ(mixin) ๋ถ๋ถ
'์คํฐ๋ > ์ค๋ธ์ ํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค๋ธ์ ํธ] 13์ฅ '์๋ธํด๋์ฑ๊ณผ ์๋ธํ์ดํ' (0) | 2023.01.06 |
---|---|
[์ค๋ธ์ ํธ] 12์ฅ '๋คํ์ฑ' (0) | 2022.12.30 |
[์ค๋ธ์ ํธ] 10์ฅ '์์๊ณผ ์ฝ๋ ์ฌ์ฌ์ฉ' (0) | 2022.12.16 |
[์ค๋ธ์ ํธ] 9์ฅ '์ ์ฐํ ์ค๊ณ' (0) | 2022.12.09 |
[์ค๋ธ์ ํธ] 8์ฅ '์์กด์ฑ ๊ด๋ฆฌํ๊ธฐ' (0) | 2022.12.02 |
๋๊ธ