OOP

객체지ν–₯ 5λŒ€ 원칙

Leeseojune53 2023. 6. 26. 00:31

πŸ“Œ μ •μ˜

SRP(Single Responsiblity Principle) 단일 μ±…μž„ 원칙

μ†Œν”„νŠΈμ›¨μ–΄μ˜ 섀계 λΆ€ν’ˆ(클래슀, ν•¨μˆ˜ λ“±)은 단 ν•˜λ‚˜μ˜ μ±…μž„λ§Œμ„ κ°€μ Έμ•Ό ν•œλ‹€.

μ±…μž„μ€ κΈ°λŠ₯으둜 ν•΄μ„ν•˜λ©΄ λœλ‹€.

 

OCP(Open-Closed Pinciple) 개방-폐쇄 원칙

기쑴의 μ½”λ“œλ₯Ό λ³€κ²½ν•˜μ§€ μ•Šκ³ (Closed), κΈ°λŠ₯을 μˆ˜μ •ν•˜κ±°λ‚˜ μΆ”κ°€ν•  수 μžˆλ„λ‘(Open) 섀계해야 ν•œλ‹€.

λ³€κ²½λ˜λŠ” 것이 λ¬΄μ—‡μΈμ§€ μ΄ˆμ μ„ λ§žμΆ˜λ‹€. 즉, 자주 λ³€κ²½λ˜λŠ” λ‚΄μš©μ€ μˆ˜μ •ν•˜κΈ° μ‰½κ²Œ μ„€κ³„ν•˜κ³ , 자주 λ³€κ²½λ˜μ§€ μ•ŠλŠ” 것은 μˆ˜μ •λ˜λŠ” λ‚΄μš©μ— 영ν–₯을 받지 μ•ŠλŠ” 것.이λ₯Ό μœ„ν•΄ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 자주 μ‚¬μš©ν•œλ‹€.

 

LSP(Liskov Substitution Principle) λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙

μžμ‹ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ν΄λž˜μŠ€μ—μ„œ κ°€λŠ₯ν•œ ν–‰μœ„λ₯Ό μˆ˜ν–‰ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

상속 κ΄€κ³„μ—μ„œλŠ” μΌλ°˜ν™” 관계(IS-A)κ°€ 성립해야 ν•œλ‹€. μΌλ°˜ν™” 관계에 μžˆλ‹€λŠ” 것은 일관성이 μžˆλ‹€λŠ” 것이닀.

 

DIP(Dependency Inversion Principle) 의쑴 μ—­μ „ 원칙

의쑴 관계λ₯Ό 맺을 λ•Œ, λ³€ν™”ν•˜κΈ° μ‰¬μš΄ 것보단 λ³€ν™”ν•˜κΈ° μ–΄λ €μš΄ 것에 μ˜μ‘΄ν•΄μ•Ό ν•œλ‹€λŠ” 원칙이닀.

DIPλ₯Ό λ§Œμ‘±ν•œλ‹€λŠ” 것은 μ˜μ‘΄κ΄€κ³„λ₯Ό 맺을 λ•Œ, ꡬ체적인 ν΄λž˜μŠ€λ³΄λ‹€ μΈν„°νŽ˜μ΄μŠ€λ‚˜ μΆ”μƒν΄λž˜μŠ€μ™€ 관계λ₯Ό λ§ΊλŠ”λ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€.

 

ISP(Interface Segregation Principle)

μΈν„°νŽ˜μ΄μŠ€ 뢄리 μ›μΉ™ν•œ ν΄λž˜μŠ€λŠ” μžμ‹ μ΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€λŠ” κ΅¬ν˜„ν•˜μ§€ 말아야 ν•œλ‹€. ν•˜λ‚˜μ˜ 일반적인 μΈν„°νŽ˜μ΄μŠ€λ³΄λ‹€λŠ”, μ—¬λŸ¬ 개의 ꡬ체적인 μΈν„°νŽ˜μ΄μŠ€κ°€ λ‚«λ‹€.