[JAVA] SOLID

κΉ€μ •λ―ΌΒ·2022λ…„ 7μ›” 22일
1
post-thumbnail

SOLID

ν΄λ¦°μ½”λ“œλ‘œ 유λͺ…ν•œ λ‘œλ²„νŠΈ λ§ˆν‹΄μ΄ 쒋은 객체 μ§€ν–₯ μ„€κ³„μ˜ 5κ°€μ§€ 원칙을 정리

SRP: 단일 μ±…μž„ 원칙(single responsibility principle)

  • ν•˜λ‚˜μ˜ λͺ¨λ“ˆμ€ ν•œ κ°€μ§€ μ±…μž„μ„ κ°€μ Έμ•Ό ν•œλ‹€λŠ” 것

  • λͺ¨λ“ˆμ΄ λ³€κ²½λ˜λŠ” μ΄μœ κ°€ ν•œκ°€μ§€μ—¬μ•Ό 함

    OCP: 개방-폐쇄 원칙 (Open/closed principle)

  • ν™•μž₯에 λŒ€ν•΄ μ—΄λ €μžˆκ³  μˆ˜μ •μ— λŒ€ν•΄μ„œλŠ” λ‹«ν˜€μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 원칙

  • 개방 폐쇄 원칙을 μ§€ν‚€κΈ° μœ„ν•΄μ„œλŠ” 좔상화에 의쑴

    LSP: λ¦¬μŠ€μ½”ν”„ μΉ˜ν™˜ 원칙 (Liskov substitution principle)

  • μƒμœ„ νƒ€μž…μ΄ ν•˜μœ„ νƒ€μž…μœΌλ‘œ λ³€κ²½λ˜μ–΄λ„, 차이점을 μΈμ‹ν•˜μ§€ λͺ»ν•œ 채 μƒμœ„ νƒ€μž…μ˜ 퍼블릭 μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 μ„œλΈŒ 클래슀λ₯Ό μ‚¬μš©ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 것

    ISP: μΈν„°νŽ˜μ΄μŠ€ 뢄리 원칙 (Interface segregation principle)

  • λͺ©μ κ³Ό 관심이 각기 λ‹€λ₯Έ ν΄λΌμ΄μ–ΈνŠΈκ°€ μžˆλ‹€λ©΄ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 μ μ ˆν•˜κ²Œ 뢄리

  • ν΄λΌμ΄μ–ΈνŠΈμ˜ λͺ©μ κ³Ό μš©λ„μ— μ ν•©ν•œ μΈν„°νŽ˜μ΄μŠ€ λ§Œμ„ 제곡

    DIP: μ˜μ‘΄κ΄€κ³„ μ—­μ „ 원칙 (Dependency inversion principle)

  • 좔상화에 μ˜μ‘΄ν•˜λ©° κ΅¬μ²΄ν™”μ—λŠ” μ˜μ‘΄ν•˜μ§€ μ•ŠλŠ” 섀계 원칙

    μžμ„Έν•œ 사항은 μ•„λž˜ 좜처 확인


    좜처: https://mangkyu.tistory.com/194 [MangKyu's Diary:ν‹°μŠ€ν† λ¦¬]

0개의 λŒ“κΈ€