์ข์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋,
๊ฐ. ์บก์ํ๊ฐ ์ ๋์ด ์์
๋. ๋ฐ์ด๋ ์ถ์์ฑ
๋ค. ์์(์ฝ๋ ์ฌ์ฌ์ฉ)
๊ฐ,๋,๋ค๋ฅผ ํตํด์ ๋ผ. ๋คํ์ฑ์ ์ถ๊ตฌํ๋ค.
<์บก์ํ>
์ ์ฐจ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์๋ ๋ฐ์ดํฐ์ ํจ์๊ฐ ๋ค ์์ฌ์๋ค.
์ฌ๊ธฐ์ ๊ด๋ จ์ด ์๋ ๋ฐ์ดํฐ์ ํจ์๋ค์ ๋ฌถ๋ ๊ฒ์ '์บก์ํ'๋ผ๊ณ ํ๋ค. ๋ํ ์ธ๋ถ์ ๋ ธ์ถํ ํ์๊ฐ ์๋ ๋ฐ์ดํฐ๋ค์ ์ ์จ๊ธฐ๋ ๊ฒ์ด๊ธฐ๋ ํ๋ค.
(์์1 : ๊ฐ๊ธฐ์ฝ์ ์์, ํ์๋ค์ ์์ฌ๊ฐ ๊ฑด๋ค์ค ์บก์ ๊ฐ๊ธฐ์ฝ ํ๋๋ง ๋จน์ผ๋ฉด ๋๋ค. ๊ทธ ์บก์์์ ๊ฐ๋ฃจ๊ฐ ์ด๋ค ์ฑ๋ถ๋ค์ด ์์ฌ ์๋์ง๋ ๋ชฐ๋ผ๋ ๋๋ค.)
(์์2 : ๊ณ ์์ด์ ์ํ๋ ์ธ๋ถ์์ ์ง์ ์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.(์ฌํ, ์ํ, ๊ธฐ์จ, ํ์จ ๋ฑ...) ๋จ ์ฃผ์ธ์ด ๋์์ฃผ๊ณ ๋จน์ด๋ฅผ ์ฃผ๋ ๋ฑ์ ํ์(์ธ๋ถ ํจ์)๋ฅผ ๊ฐํจ์ผ๋ก์จ ๊ณ ์์ด์ ๋ด๋ถ ์ํ์ ๋ณํ๋ฅผ ์ฃผ์๋ค๋ฉด incapsulation ์ด๋ค.
<์ถ์ํ>
์ปคํผ๋จธ์ ์ด ์๋ค๊ณ ์น๋ฉด ๋ด๋ถ์ ๋ณต์กํ ๊ธฐ๋ฅ์ ๋ค ์ดํดํ์ง ์๊ณ , ์ธ๋ถ์์ ๊ฐ๋จํ ์ธํฐํ์ด์ค๋ฅผ ํตํด์ ์ธ ์ ์๋ ๊ฒ์ ๋งํ๋ค. ๋ฒํผ๋ง ๋๋ฅด๋ฉด ์ปคํผ๊ฐ ๋์ค๋ฏ์ด.
์บก์ํ๋ฅผ ์ด์ฉํ๋ฉด ์ธ๋ถ์์๋ ๋ด๋ถ๊ฐ ์ด๋ป๊ฒ ๊ตฌํ๋์ด ์๋์ง, ๊ทธ ๋ณต์ก๋๊ฐ ์ผ๋ง๋ ๋์์ง ์ ๊ฒฝ ์ธ ํ์์์ด ์ธ๋ถ์์๋ง ๋ณด์ด๋ function()์ interface ํจ์๋ฅผ ์ฌ์ฉํด์ ์ค๋ธ์ ํธ(์ปคํผ๋จธ์ )๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
<์์>
์๋ฃ ๋จธ์ ์ค๊ณ๋๋ฅผ ์ ์ง๋์ผ๋ฉด ๊ทธ๊ฒ์ผ๋ก ์ฝ๊ฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํด์ ์ปคํผ๋จธ์ ๋ง๋ค๊ณ , ์์ด์คํฌ๋ฆผ๋จธ์ ๋ง๋ค ์ ์์ ๊ฒ์ด๋ค.
์ด์ฒ๋ผ ์์์ ์ด์ฉํ๋ฉด ํ๋ฒ ์ ์ ์ํด ๋ ํด๋์ค๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋ค.
super-sub
base-derived
parent-child ๊ด๊ณ ํ์ฑ(is-a ๊ด๊ณ)
์์์ ๋ฐ์ ์์ํด๋์ค๋ ๋ถ๋ชจํด๋์ค๋ผ๊ณ ๋งํ ์ ์๋ค.
์๋ ํด๋์ค์ผ์๋ก ์ฌ์ฉํ ์ ์๋ ํจ์๊ฐ ๋ง์์ง๋ค.
๋ถ๋ชจ์ด๊ธฐ๋ ํ๋ฉด์ ์์ ์ด๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ธ๋ผ์ฐ์ DOM ์์๋ ์ ๋ถ ์์์ผ๋ก ๊ตฌํ๋์ด ์๋ค.
<๋คํ์ฑ>
๋ถ๋ชจ์ ์ ์๋ ํจ์๋ ์์๋ค์ด ์ ๋ถ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก,
ํจ์๋ฅผ ํธ์ถํ๋ฉด ์์๋ค์ ๊ณตํต์ ์ผ๋ก ํธ์ถํ ์ ์๋ค.
'TypeScript > ํ์ ์คํฌ๋ฆฝํธ TypeScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ์ ์คํฌ๋ฆฝํธ] ๊ฐ์ฒด์งํฅ์ ์ปคํผ๋จธ์ ๋ง๋ค๊ธฐ : encapsulation (0) | 2022.04.18 |
---|---|
[ํ์ ์คํฌ๋ฆฝํธ] ์ ์ฐจ์งํฅ์ ์ปคํผ๋จธ์ vs ๊ฐ์ฒด์งํฅ์ ์ปคํผ๋จธ์ (0) | 2022.04.18 |
ํ์ ์คํฌ๋ฆฝํธ ๋ก๋ฉ ์ํ ํ์ ์์ (0) | 2022.04.17 |
ํ์ ์คํฌ๋ฆฝํธ ์ขํ ์ด๋ ์์ (0) | 2022.04.17 |
ํ์ ์คํฌ๋ฆฝํธ ๊ณ์ฐ๊ธฐ ํจ์ ๋ง๋ค๊ธฐ (0) | 2022.04.17 |