TypeScript/νƒ€μž…μŠ€ν¬λ¦½νŠΈ TypeScript

[νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ „μš© μ˜ˆμ‹œ] 객체지ν–₯ 4κ°€μ§€ 원칙

Rainbow🌈Coder 2022. 4. 17. 17:40
728x90

쒋은 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄λž€,

κ°€. μΊ‘μŠν™”κ°€ 잘 λ˜μ–΄ 있음

λ‚˜. λ›°μ–΄λ‚œ 좔상성

λ‹€. 상속(μ½”λ“œ μž¬μ‚¬μš©)

 

κ°€,λ‚˜,λ‹€λ₯Ό ν†΅ν•΄μ„œ 라. λ‹€ν˜•μ„±μ„ μΆ”κ΅¬ν•œλ‹€. 

 

 

<μΊ‘μŠν™”>

μ ˆμ°¨μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” 데이터와 ν•¨μˆ˜κ°€ λ‹€ μ„žμ—¬μžˆλ‹€. 

μ—¬κΈ°μ„œ 관련이 μžˆλŠ” 데이터와 ν•¨μˆ˜λ“€μ„ λ¬ΆλŠ” 것을 'μΊ‘μŠν™”'라고 ν•œλ‹€. λ˜ν•œ 외뢀에 λ…ΈμΆœν•  ν•„μš”κ°€ μ—†λŠ” 데이터듀을 잘 μˆ¨κΈ°λŠ” 것이기도 ν•˜λ‹€.

(μ˜ˆμ‹œ1 : κ°κΈ°μ•½μ˜ μ˜ˆμ‹œ, ν™˜μžλ“€μ€ μ˜μ‚¬κ°€ 건넀쀀 캑슐 감기약 ν•˜λ‚˜λ§Œ 먹으면 λœλ‹€. κ·Έ μΊ‘μŠμ•ˆμ˜ 가루가 μ–΄λ–€ 성뢄듀이 μ„žμ—¬ μžˆλŠ”μ§€λŠ” λͺ°λΌλ„ λœλ‹€.)

(μ˜ˆμ‹œ2 : κ³ μ–‘μ΄μ˜ μƒνƒœλŠ” μ™ΈλΆ€μ—μ„œ μ§μ ‘μ μœΌλ‘œ λ³€κ²½ν•  수 μ—†λ‹€.(μŠ¬ν””, μ•„ν””, 기쁨, ν‰μ˜¨ λ“±...) 단 주인이 놀아주고 먹이λ₯Ό μ£ΌλŠ” λ“±μ˜ ν–‰μœ„(μ™ΈλΆ€ ν•¨μˆ˜)λ₯Ό κ°€ν•¨μœΌλ‘œμ¨ κ³ μ–‘μ΄μ˜ λ‚΄λΆ€ μƒνƒœμ— λ³€ν™”λ₯Ό μ£Όμ—ˆλ‹€λ©΄ incapsulation 이닀.

 

 

<좔상화>

컀피머신이 μžˆλ‹€κ³  치면 λ‚΄λΆ€μ˜ λ³΅μž‘ν•œ κΈ°λŠ₯을 λ‹€ μ΄ν•΄ν•˜μ§€ μ•Šκ³ , μ™ΈλΆ€μ—μ„œ κ°„λ‹¨ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν†΅ν•΄μ„œ μ“Έ 수 μžˆλŠ” 것을 λ§ν•œλ‹€. λ²„νŠΌλ§Œ λˆ„λ₯΄λ©΄ 컀피가 λ‚˜μ˜€λ“―μ΄. 

μΊ‘μŠν™”λ₯Ό μ΄μš©ν•˜λ©΄ μ™ΈλΆ€μ—μ„œλŠ” λ‚΄λΆ€κ°€ μ–΄λ–»κ²Œ κ΅¬ν˜„λ˜μ–΄ μžˆλŠ”μ§€, κ·Έ λ³΅μž‘λ„κ°€ μ–Όλ§ˆλ‚˜ 높은지 μ‹ κ²½ μ“Έ ν•„μš”μ—†μ΄ μ™ΈλΆ€μ—μ„œλ§Œ λ³΄μ΄λŠ” function()을 interface ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œ 였브젝트(컀피머신)λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€. 

 

<상속>

음료 λ¨Έμ‹  섀계도λ₯Ό 잘 μ§œλ†“μœΌλ©΄ κ·Έκ²ƒμœΌλ‘œ μ•½κ°„μ˜ κΈ°λŠ₯을 μΆ”κ°€ν•˜κ±°λ‚˜ λ³€κ²½ν•΄μ„œ 컀피머신 λ§Œλ“€κ³ , μ•„μ΄μŠ€ν¬λ¦Όλ¨Έμ‹  λ§Œλ“€ 수 μžˆμ„ 것이닀.   

이처럼 상속을 μ΄μš©ν•˜λ©΄ ν•œλ²ˆ 잘 μ •μ˜ν•΄ λ‘” 클래슀λ₯Ό μž¬μ‚¬μš©ν•  수 μžˆλ‹€.

super-sub

base-derived

parent-child 관계 ν˜•μ„±(is-a 관계)

상속을 받은 μžμ‹ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ν΄λž˜μŠ€λΌκ³  말할 수 μžˆλ‹€. 

μ•„λž˜ 클래슀일수둝 μ‚¬μš©ν•  수 μžˆλŠ” ν•¨μˆ˜κ°€ λ§Žμ•„μ§„λ‹€.

λΆ€λͺ¨μ΄κΈ°λ„ ν•˜λ©΄μ„œ μžμ‹ μ΄κΈ°λ„ ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

 

λΈŒλΌμš°μ € DOM μš”μ†Œλ„ μ „λΆ€ μƒμ†μœΌλ‘œ κ΅¬ν˜„λ˜μ–΄ μžˆλ‹€.

 

<λ‹€ν˜•μ„±>  

λΆ€λͺ¨μ— μ •μ˜λœ ν•¨μˆ˜λŠ” μžμ‹λ“€μ΄ μ „λΆ€ κ°€μ§€κ³  μžˆμœΌλ―€λ‘œ,

ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄ μžμ‹λ“€μ„ κ³΅ν†΅μ μœΌλ‘œ ν˜ΈμΆœν•  수 μžˆλ‹€. 

728x90