μŠ€ν„°λ””/μžλ°”

[였브젝트] 14μž₯ '일관성 μžˆλŠ” ν˜‘λ ₯'

moon101 2023. 1. 14. 01:50
14μž₯은 섀계λ₯Ό 일관성 있게 λ§Œλ“€κΈ° μœ„ν•΄ 변경을 μΊ‘μŠν™”ν•˜λŠ” 기법을 μ†Œκ°œν•œλ‹€.

 

μ •λ¦¬ν•˜μžλ©΄ μœ μ‚¬ν•œ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ μœ μ‚¬ν•œ ν˜‘λ ₯ νŒ¨ν„΄μ„ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”λ°, 일관성 μžˆλŠ” ν˜‘λ ₯ νŒ¨ν„΄μ„ μ μš©ν•˜λ©΄ μ½”λ“œκ°€ μ΄ν•΄ν•˜κΈ° 쉽고 직관적이며 μœ μ—°ν•΄μ§€κΈ° λ•Œλ¬Έμ΄λ‹€. 

 

일관성 μžˆλŠ” ν˜‘λ ₯을 μ„€λͺ…ν•˜κΈ° μœ„ν•΄ μ±…μ—μ„œλŠ” μ €λ²ˆμ— λ‹€λ£¨μ—ˆλ˜ ν•Έλ“œν° μš”κΈˆμ œ 예제 μ½”λ“œλ₯Ό μ‚¬μš©ν•œλ‹€.

μ½”λ“œλ‘œ μ„€λͺ…ν•΄ μ£ΌλŠ” κ±° 쒋은데... μ½”λ“œ λ„ˆλ¬΄ μ–΄λ ΅λ‹€.... γ… γ… 

 

μΊ‘μŠν™” μ’…λ₯˜

κ°œλ³„ 객체에 λŒ€ν•œ λ³€κ²½ 관리

  • 데이터 μΊ‘μŠν™” : 클래슀의 μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό private으둜 μ™ΈλΆ€μ—μ„œ μ ‘κ·Όν•  수 없도둝 μΊ‘μŠν™”ν•œ 것. 
  • λ©”μ„œλ“œ μΊ‘μŠν™” : 클래슀의 λ‚΄λΆ€ 행동을 μΊ‘μŠν™”ν•œ 것 

ν˜‘λ ₯에 μ°Έμ—¬ν•˜λŠ” κ°μ²΄λ“€μ˜ 관계에 λŒ€ν•œ λ³€κ²½ 관리

  • 객체 μΊ‘μŠν™” : 객체와 객체 μ‚¬μ΄μ˜ 관계λ₯Ό μΊ‘μŠν™”ν•œ 것. (합성을 μ˜λ―Έν•œλ‹€)
  • μ„œλΈŒνƒ€μž… μΊ‘μŠν™” : 좔상적인 관계가 μ‹€μ œ μ‹€ν–‰ μ‹œμ μ— λ™μž‘ν•˜λŠ” concrete 클래슀λ₯Ό 감좔고 μžˆλŠ” 것. μ„œλΈŒνƒ€μž…μ˜ μ’…λ₯˜λ₯Ό μΊ‘μŠν™”ν•œ 것이닀. (λ‹€ν˜•μ„±μ˜ 기반이 λœλ‹€)

이 쀑 ν˜‘λ ₯을 일관성 있게 λ§Œλ“€κΈ° μœ„ν•΄μ„œλŠ” μ„œλΈŒνƒ€μž… μΊ‘μŠν™”(μΈν„°νŽ˜μ΄μŠ€ 상속)와 객체 μΊ‘μŠν™”(ν•©μ„±)λ₯Ό μ‘°ν•©ν•˜λŠ” 방법이 κ°€μž₯ μΌλ°˜μ μ΄λ‹€. 

 

μœ μ‚¬ν•œ κΈ°λŠ₯에 λŒ€ν•΄ μœ μ‚¬ν•œ ν˜‘λ ₯ νŒ¨ν„΄μ„ μ μš©ν•˜λŠ” 것은 객체지ν–₯ μ‹œμŠ€ν…œμ—μ„œ κ°œλ…μ  무결성(conceptual integrity)을 μœ μ§€ν•  수 μžˆλŠ” κ°€μž₯ 효과적인 방법이닀(p.509).

 

 

// TODO

μ½”λ“œ 보기