🧹

μ˜μ‘΄μ„±κ³Ό 결합도

μ˜μ‘΄μ„±

  • μ–΄λ–€ 객체가 ν˜‘λ ₯ν•˜κΈ° μœ„ν•΄ λ‹€λ₯Έ 객체λ₯Ό ν•„μš”λ‘œ ν•  λ•Œ 두 객체 μ‚¬μ΄μ˜ μ˜μ‘΄μ„±μ΄ μ‘΄μž¬ν•˜κ²Œ λœλ‹€.
  • μ˜μ‘΄μ„±μ€ μ‹€ν–‰ μ‹œμ κ³Ό κ΅¬ν˜„ μ‹œμ μ— μ„œλ‘œ λ‹€λ₯Έ 의미λ₯Ό κ°€μ§„λ‹€. (좜처: 였브젝트, 쑰영호)
    • μ»΄νŒŒμΌνƒ€μž„ μ˜μ‘΄μ„±: μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” μ‹œμ μ—μ„œ λ°œμƒν•˜λŠ” μ˜μ‘΄μ„±. 클래슀 μ‚¬μ΄μ˜ μ˜μ‘΄μ„±.
    • λŸ°νƒ€μž„ μ˜μ‘΄μ„±: μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹€ν–‰λ˜λŠ” μ‹œμ μ˜ μ˜μ‘΄μ„±. 객체 μ‚¬μ΄μ˜ μ˜μ‘΄μ„±.
notion image
public class Order{ private FixedAmountVoucher voucher; public Order(long discount){ voucher = new FixedAmountVoucher(discount); }

결합도

  • κ²°ν•©λ„λž€ β€œν•˜λ‚˜μ˜ 객체가 변경이 일어날 λ•Œμ— 관계λ₯Ό λ§Ίκ³  μžˆλŠ” λ‹€λ₯Έ κ°μ²΄μ—κ²Œ λ³€ν™”λ₯Ό μš”κ΅¬ν•˜λŠ” 정도"라고 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ–΄λ–€ 두 μš”μ†Œ 사이에 μ‘΄μž¬ν•˜λŠ” μ˜μ‘΄μ„±μ΄ λ°”λžŒμ§ν•  λ•Œ 두 μš”μ†Œκ°€ λŠμŠ¨ν•œ 결합도 λ˜λŠ” μ•½ν•œ 결합도λ₯Ό κ°€μ§„λ‹€κ³  λ§ν•©λ‹ˆλ‹€. λ°˜λŒ€λ‘œ 두 μš”μ†Œμ˜ μ˜μ‘΄μ„±μ΄ λ°”λžŒμ§ν•˜μ§€ λͺ»ν•  λ•Œ λ‹¨λ‹¨ν•œ 결합도, λ˜λŠ” κ°•ν•œ 결합도λ₯Ό κ°€μ§„λ‹€κ³  말함
  • μœ„μ˜ κ΄€κ³„λ„μ—μ„œ Order κ°€ FixedAmountVoucher λ₯Ό λ°”λ‘œ κ°€μ§€λŠ” 게 μ•„λ‹ˆλΌ Voucher interfaceλ₯Ό κ°€μ§μœΌλ‘œμ¨ 결합도λ₯Ό λŠμŠ¨ν•˜κ²Œ ν•΄μ€Œ
public class Order{ private Voucher voucher; public Order(Voucher voucher){ this.voucher = voucher; }
notion image