우규이인우윀
Eager To Learn 🌌
우규이인우윀
전체 방문자
였늘
μ–΄μ œ

λΈ”λ‘œκ·Έ 메뉴

  • 🏑 ν™ˆ
  • πŸš€ κΉƒν—ˆλΈŒ
  • β›… νƒœκ·Έ ν΄λΌμš°λ“œ
  • λΆ„λ₯˜ 전체보기 (217)
    • πŸ‘¨πŸ»‍πŸ’» PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm 기법 (1)
      • 바킹독 (21)
    • λΈ”λ‘œκ·Έ 이사 (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • 자료ꡬ쑰 (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • κ°œλ°œμ„œμ  (15)
      • 가상 λ©΄μ ‘ μ‚¬λ‘€λ‘œ λ°°μš°λŠ” λŒ€κ·œλͺ¨ μ‹œμŠ€ν…œ 섀계 기초 (1)
      • 였브젝트 - 쑰영호 (7)
      • μΉœμ ˆν•œ SQL νŠœλ‹ (7)
    • 회고 (2)
hELLO Β· Designed By μ •μƒμš°.
우규이인우윀

Eager To Learn 🌌

κ°œλ°œμ„œμ /였브젝트 - 쑰영호

Chapter 3. μ—­ν• , μ±…μž„, ν˜‘λ ₯

2023. 10. 10. 17:09

μ‘°μ˜ν˜Έλ‹˜μ˜ μ˜€λΈŒμ νŠΈλ₯Ό 읽고 제 머릿속에 μžˆλŠ” λ‚΄μš©λ“€μ„ μ •λ¦¬ν•˜λ©° μž‘μ„±ν•œ κΈ€μž…λ‹ˆλ‹€.

 


객체 μ§€ν–₯μ—μ„œ κ°€μž₯ μ€‘μš”ν•œ 것은 πŸ’‘ μ—­ν• , μ±…μž„, ν˜‘λ ₯이닀.

 

클래슀, 상속, μ§€μ—° 바인딩과 같은 κ°œλ…μ€ κ΅¬ν˜„μ— 초점이 λ§žμΆ”μ–΄μ Έ 있기 λ•Œλ¬Έμ—,

 

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ μ–΄λ–€ ν˜‘λ ₯이 ν•„μš”ν•˜κ³  ν˜‘λ ₯을 μœ„ν•΄ μ–΄λ–€ μ—­ν• κ³Ό μ±…μž„μ΄ ν•„μš”ν•œμ§€ 고민을 ν•˜λŠ” 것이 더 μ€‘μš”ν•˜λ‹€.

 

 

1️⃣ ν˜‘λ ₯

객체듀이 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ μˆ˜ν–‰ν•˜λŠ” μƒν˜Έμž‘μš©μ„ λ§ν•œλ‹€.

 

두 객체의 ν˜‘λ ₯은, ν•˜λ‚˜μ˜ 객체가 λ‹€λ₯Έ κ°μ²΄μ—κ²Œ 도움을 μš”μ²­ν•  λ•Œ μ‹œμž‘λœλ‹€.

 

κ°μ²΄λŠ” λ‹€λ₯Έ 객체의 μƒμ„Έν•œ λ‚΄λΆ€ κ΅¬ν˜„μ— 직접 μ ‘κ·Όν•  수 μ—†μœΌλ―€λ‘œ, πŸ’‘ λ©”μ‹œμ§€ 전솑을 톡해 ν˜‘λ ₯ν•œλ‹€.

 

λ§Œμ•½ λ‹€λ₯Έ 객체의 λ‚΄λΆ€ κ΅¬ν˜„μ— μ ‘κ·Όν•˜μ—¬ λ™μž‘ν•œλ‹€λ©΄, 객체의 μžμœ¨μ„±μ„ ν›Όμ†ν•˜λŠ” ν–‰μœ„μ΄λ‹€. λ”°λΌμ„œ, λ‹€λ₯Έ 객체가 μ ‘κ·Όν•  수 없도둝 μΊ‘μŠν™”λ₯Ό 톡해 경계λ₯Ό λͺ…ν™•νžˆ ν•˜κ³ , 슀슀둜 κ²°μ •ν•  수 μžˆλŠ” 자율적인 객체가 λ˜μ–΄μ•Όν•œλ‹€.

 

λ©”μ‹œμ§€λ₯Ό 받은 κ°μ²΄λŠ” 슀슀둜 κ²°μ •ν•˜μ—¬ μžμ‹ μ΄ κ°€μ§„ πŸ’‘ λ©”μ„œλ“œλ₯Ό μ‹€ν–‰ν•˜μ—¬ μš”μ²­μ— μ‘λ‹΅ν•œλ‹€.

 

 

2️⃣ μ±…μž„

ν˜‘λ ₯에 μ°Έμ—¬ν•˜κΈ° μœ„ν•΄ 객체가 μˆ˜ν–‰ν•˜λŠ” 행동을 λ§ν•œλ‹€.

 

객체가 μœ μ§€ν•΄μ•Όν•˜λŠ” 정보와 μˆ˜ν–‰ν•  수 μžˆλŠ” 행동이 μ±…μž„μ΄ λœλ‹€.

 

객체의 μ±…μž„μ€ '무엇을 μ•Œκ³  μžˆλŠ”κ°€' 와 '무엇을 ν•  수 μžˆλŠ”κ°€' 둜 κ΅¬μ„±λœλ‹€.

 

κ°μ²΄λŠ” μžμ‹ μ΄ 맑은 μ±…μž„μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ 정보λ₯Ό μ•Œκ³ μžˆμ–΄μ•Ό ν•˜κ³ , μžμ‹ μ˜ μž‘μ—…μ„ 도와쀄 객체λ₯Ό μ•Œκ³  μžˆμ–΄μ•Ό ν•œλ‹€.

 

ν˜Ήμ€ μžμ‹ μ΄ μˆ˜ν–‰ν•  쀄 μ•Œμ•„μ•Ό ν•˜κ±°λ‚˜, λ‹€λ₯Έ κ°μ²΄μ—κ²Œ ν˜‘λ ₯을 μš”μ²­ν•  쀄 μ•Œμ•„μ•Ό ν•œλ‹€.

 

μ‚¬μš©μžμ—κ²Œ μ œκ³΅ν•΄μ•Ό ν•  κΈ°λŠ₯이 μ˜ν™” 예맀 라고 μƒκ°ν•˜κ³  μ±…μž„μ„ ν• λ‹Ήν•΄λ³΄μž

1. μ˜ν™”λ₯Ό μ˜ˆλ§€ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©μžλŠ” μ˜ˆλ§€ν•΄λΌ λΌλŠ” λ©”μ„Έμ§€λ₯Ό μš”μ²­ν•  수 μžˆλ‹€.

λ”°λΌμ„œ, 첫번째 λ©”μ‹œμ§€ μ˜ˆλ§€ν•΄λΌ κ°€ κ²°μ •λœλ‹€.

2. 그러면 이 μ˜ˆλ§€ν•΄λΌλ₯Ό 잘 μˆ˜ν–‰ν•  수 μžˆλŠ” κ°μ²΄λŠ” μ–΄λ–€ 객체일까

μƒμ˜ μ‹œκ°„κ³Ό μ˜ν™” κ΄€λ ¨ 정보λ₯Ό κ°€μ§„ Screening 객체가 μžˆλ‹€λ©΄ 될 것 κ°™λ‹€.

μ˜ˆλ§€ν•΄λΌ → Screening

3. 예맀λ₯Ό ν•˜κΈ° μœ„ν•΄μ„œλŠ” 가격을 κ³„μ‚°ν•΄μ•Όν•œλ‹€.

μ˜ν™” κ΄€λ ¨ 정보λ₯Ό κ°€μ§„ Screening이 이 μ±…μž„ κΉŒμ§€ μ§€λŠ” 것 λ³΄λ‹€λŠ”

μ˜ν™” 가격과 μ˜ν™” 제λͺ© 등을 ν¬ν•¨ν•˜λŠ” 객체 Movie λ₯Ό μΆ”κ°€ν•˜κ³ , μ˜ν™” 가격은 Movie의 μ •λ³΄μ΄λ―€λ‘œ Movie κ°μ²΄μ—κ²Œ 가격을 계산해달라고 λ©”μ‹œμ§€λ₯Ό 보내 ν˜‘λ ₯ μš”μ²­μ„ ν•˜λŠ” 것이 μ±…μž„ λΆ„ν•  μΈ‘λ©΄μ—μ„œ λ°”λžŒμ§ν•˜λ‹€.

μ˜ˆλ§€ν•΄λΌ → Screening → 계산해라 → Movie

4. λ§Œμ•½, 할인 μ •μ±…κΉŒμ§€ 적용이 ν•„μš”ν•˜λ‹€λ©΄?

할인 정책에 λŒ€ν•œ μ±…μž„μ„ κ°€μ§„ 객체λ₯Ό μΆ”κ°€ν•˜κ³  MovieλŠ” κ·Έ κ°μ²΄μ—κ²Œ ν• μΈλœ 가격을 μ•Œλ €λ‹¬λΌκ³  μš”μ²­ν•  수 μžˆλ‹€.

 

μœ„μ™€ 같이 λ©”μ‹œμ§€λ₯Ό κΈ°μ€€μœΌλ‘œ 이 λ©”μ‹œμ§€λ₯Ό μ²˜λ¦¬ν•  수 μžˆλŠ” 객체가 무엇이 μžˆμ„μ§€ μƒκ°ν•΄μ•Όν•œλ‹€.

 

λ©”μ‹œμ§€λ₯Ό κΈ°μ€€μœΌλ‘œ 객체λ₯Ό κ²°μ •ν•˜λ©΄, πŸ’‘ μ–΄λ–»κ²Œ(how) κ°€ μ•„λ‹Œ 무엇(what)이 ν•„μš”ν•œμ§€ 생각할 수 있고 μ΄λŠ” μΌμ’…μ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ •μ˜ν•  수 있게 도와쀀닀.

 

ν˜‘λ ₯ 관계 μ†μ—μ„œ κ°μ²΄λŠ” λ‹€λ₯Έ κ°μ²΄μ—κ²Œ 무엇을 μ œκ³΅ν•˜κ³  무엇을 μ–»μ–΄μ•Ό ν•˜λŠ”μ§€ κ³ λ―Όν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

 

3️⃣ μ—­ν• 

ν˜‘λ ₯ μ•ˆμ—μ„œ 객체가 맑게 λ˜λŠ” μ±…μž„μ˜ 집합을 λ§ν•œλ‹€.

 

역할은 좔상적인 μ±…μž„κ³Ό μœ μ‚¬ν•˜κ²Œ 생각할 수 μžˆλ‹€.

 

'μ˜ν™” 가격을 μš”κΈˆμ˜ νΌμ„ΌνŠΈλ‘œ ν• μΈν•΄μ„œ 계산해라' 와 'μ˜ν™” 가격을 νŠΉμ • ν• μΈκ°€λ‘œ ν• μΈν•΄μ„œ 계산해라' 와 같이

 

2개의 λ©”μ‹œμ§€λ₯Ό ν•˜λ‚˜λ‘œ 톡합할 수 μžˆλŠ” μ±…μž„μ€ 'μ˜ν™” κ°€κ²©μ˜ 할인가λ₯Ό 계산해라'κ°€ 될 수 μžˆλ‹€.

 

'νΌμ„ΌνŠΈλ‘œ 할인해라' 와 'ν• μΈκ°€λ‘œ 할인해라'λŠ” 각 객체가 κ°€μ§„ μ±…μž„μ΄ 될 수 있고 이λ₯Ό μ•„μš°λ₯Ό 수 μžˆλŠ” 것이 역할이 λœλ‹€.

 

πŸ’‘ ν˜‘λ ₯은 μ—­ν• λ“€μ˜ μƒν˜Έμž‘μš©μœΌλ‘œ κ΅¬μ„±λ˜κ³ , ν˜‘λ ₯을 κ΅¬μ„±ν•˜κΈ° μœ„ν•΄ 역할에 μ ν•©ν•œ μ±…μž„μ„ κ°€μ§„ 객체가 μ„ νƒλœλ‹€.

 

 

 

    'κ°œλ°œμ„œμ /였브젝트 - 쑰영호' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • Chapter 5. μ±…μž„ ν• λ‹Ήν•˜κΈ°
    • Chapter 4. 섀계 ν’ˆμ§ˆκ³Ό νŠΈλ ˆμ΄λ“œμ˜€ν”„
    • Chapter 2. 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°
    • Chapter 1. 객체, 섀계
    우규이인우윀
    우규이인우윀
    개발자 κΏˆλ‚˜λ¬΄

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”