[Language/TypeScript] 객체지ν–₯섀계원칙: SOLID

2023. 7. 27. 15:48γ†πŸ”€ Language/TypeScript

SRP(Single Responsibility Principle) λ‹¨μΌμ±…μž„μ›μΉ™: ν΄λž˜μŠ€λŠ” ν•˜λ‚˜μ˜ μ±…μž„λ§Œ 져야함.

OCP(Open Closed Principle) 개방 폐쇄 원칙: ν΄λž˜μŠ€λŠ” ν™•μž₯에 λŒ€ν•΄ μ—΄λ €μžˆκ³  μˆ˜μ •μ— λŒ€ν•΄ λ‹«ν˜€μžˆμ–΄μ•Ό ν•œλ‹€. 즉 클래슀의 κΈ°μ‘΄ μ½”λ“œλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³  ν•„μš”ν•œ κΈ°λŠ₯을 ν™•μž₯ν•  수 μžˆμ–΄μ•Όν•œλ‹€(μΈν„°νŽ˜μ΄μŠ€, 상속)

LSP(Liskov Substitution Principle) λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙: μ„œλΈŒνƒ€μž…μ€ 기반이 λ˜λŠ” μŠˆνΌνƒ€μž…μ„ λŒ€μ²΄ν•  수 μžˆμ–΄μ•Όν•¨

ISP(Interface Segregation Principle) μΈν„°νŽ˜μ΄μŠ€ 뢄리 원칙: ν΄λž˜μŠ€λŠ” μžμ‹ μ΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€μ˜ 영ν–₯을 λ°›μ§€ μ•Šμ•„μ•Ό ν•œλ‹€. λ”°λΌμ„œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ„ˆλ¬΄ 크게 κ΅¬ν˜„ν•˜κΈ° λ³΄λ‹€λŠ” λšœλ ·ν•œ κΈ°λŠ₯λ‹¨μœ„λ‘œ κ΅¬ν˜„ν•˜λŠ” 것이 μœ λ¦¬ν•˜λ‹€

DIP(Dependency Inversion Principle) μ˜μ‘΄μ„± μ—­μ „ 원칙: μ„œλ²„ν”„λ ˆμž„μ›Œν¬μ—μ„œ 많이 λ“±μž₯, ν•˜μœ„ μˆ˜μ€€ λͺ¨λ“ˆλ³΄λ‹€ μƒμœ„μˆ˜μ€€λͺ¨λ“ˆμ„ μš°μ„ μˆœμœ„μ— 두어야 함.