πŸŽ«μ†Œν”„νŠΈμ›¨μ–΄ 곡학 part16. UML 클래슀 λ‹€μ΄μ–΄κ·Έλž¨

vincaΒ·2023λ…„ 1μ›” 2일
1

πŸ”„ Software engineering

λͺ©λ‘ 보기
12/17

λ“œλΌμ΄λΈŒλ“œ μ–΄νŠΈλ¦¬λ·°νŠΈ

/drivedAttribute -> μ›λž˜λŠ” μ—†λŠ” 속성인데, κ³„μ‚°λ˜μ–΄ μœ λ„λ  수 μžˆλŠ” μ–΄νŠΈλ¦¬λ·°νŠΈ

도메인 λͺ¨λΈ(Domain Model)κ³Ό λ””μžμΈ 클래슀 λͺ¨λΈ(DCD)

  • 도메인 λͺ¨λΈμ€ λ©”μ†Œλ“œκ°€ μ—†κ³ , λ””μžμΈ λͺ¨λΈμ€ λ©”μ†Œλ“œκ°€ μžˆλ‹€.
  • 도메인 λͺ¨λΈμ€ λ°©ν–₯성이 μ—†κ³ , λ””μžμΈ λͺ¨λΈμ€ λ°©ν–₯성이 μžˆλ‹€. (μ„œλ‘œ κ°„μ˜ κ°€μ‹œμ„±μ΄ μžˆλ‹€)
    μ—°κ΄€(οƒ )은 μ†μ„±μœΌλ‘œ ν‘œν˜„ν•  수 μžˆλ‹€.
  • /total κ³Ό 같은 μœ λ„ μ–΄νŠΈλ¦¬λ·°νŠΈλŠ” λ©”μ†Œλ“œν˜•νƒœλ‘œ κ°„λ‹¨ν•˜κ²Œ μ •μ˜ν•΄μ£Όλ©΄ λœλ‹€.
  • currentSale은 ν•˜λ‚˜μ˜ Sale을 μƒμ„±ν•˜λŠ” κ²ƒμœΌλ‘œ Register에 생성문을 λ§Œλ“€λ©΄ λœλ‹€.

λ©”λͺ¨ λ…Έν…Œμ΄μ…˜(Memo notation)

  • 맀우 μ€‘μš”ν•˜λ‹€!
  • κ°œλ°œμžκ°€ 잘 λͺ¨λ₯Ό 수 μžˆλŠ” λ‚΄μš©μ„ ν•„μš”ν•œ 만큼 써쀀닀.

μƒμ„±μžμ™€ μ ‘κ·Όμž

μƒμ„±μž

  • createλ₯Ό μ‚¬μš© λ˜λŠ” <<constructor>><<constructor>> 와 같은 μŠ€ν…Œλ ˆμ˜€ νƒ€μž…μ„ μ‚¬μš©ν•œλ‹€.

μ ‘κ·Όμž

  • μ€‘μš”ν•œ 정보λ₯Ό ν¬ν•¨ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ, Noiseκ°€ 될 수 μžˆλ‹€.
  • ꡳ이 섀계에 μ“°μ§€ 말고 μƒλž΅ν•˜λ„λ‘ ν•˜μž!

μŠ€ν…Œλ ˆμ˜€ νƒ€μž…

  • 기쑴에 μ •μ˜ λ˜μ–΄μžˆμ„ μˆ˜λ„ 있고 <<destroy>><<destroy>> μ‚¬μš©μžκ°€ 직접 μ •μ˜ν•  μˆ˜λ„ μžˆλ‹€. <<box>><<box>>

UML Profile

  • UML의 ν‘œν˜„λ ₯이 λΆ€μ‘±ν•  λ•Œ ν™•μž₯ν•΄μ„œ μΆ”κ°€ν•  수 μžˆλŠ” 뢀뢄이닀.
  • κ°œλ…λ§Œ μ•Œκ³  μžˆλ„λ‘ν•˜μž.

Abstract Class (좔상 클래슀)

μ™œ ν•„μš”? ➝ λ‹€ν˜•μ„±μ„ μ§€μ›ν•˜κΈ° μœ„ν•΄μ„œ

(λ‹€μ€‘μƒμ†μ˜ λ¬Έμ œμ μ€ μΈν„°νŽ˜μ΄μŠ€λ‘œ ν•΄κ²°! 속성이 μ—†λŠ” μΆ”μƒν΄λž˜μŠ€!)

μΈν„°νŽ˜μ΄μŠ€ <<interface>><<interface>> λ₯Ό κΌ­ 써주자

  • 닀쀑상속을 ν• λ•Œ, μ–΄νŠΈλ¦¬λ·°νŠΈλ₯Ό μ œμ™Έν•œλ‹€ (속성이 μ—†λŠ” μΆ”μƒν΄λž˜μŠ€λΌ λΆˆλ¦¬λŠ” 이유)

  • μ‚¬μš©μž μž…μž₯μ—μ„œλŠ” SiteSearch만 μ•Œλ©΄λ˜κ³ , 사진이든 λ™μ˜μƒμ΄λ“  상속받아 μ‚¬μš©ν•˜λ©΄λœλ‹€.

  • Timer μΈν„°νŽ˜μ΄μŠ€λ₯Ό 상속(μΈν„°νŽ˜μ΄μŠ€μ—μ„œλŠ” κ΅¬ν˜„)λ°›μ•„ Clock3κ°€ μ‚¬μš©ν•˜λ―€λ‘œ, Window3에 κ΅¬ν˜„λœ my.Timer μΈν„°νŽ˜μ΄μŠ€μ— μ—°κ²°ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆλ‹€.

μ–΄κ·Έλ¦¬κ²Œμ΄μ…˜κ³Ό μ»΄ν¬μ§€μ…˜ (has a – 포함 관계 β—‡ / is a – 상속 관계 β–³)

Aggregation (λŠμŠ¨ν•œ 관계) β—‡

  • μ—°κ΄€κ³Ό 별 차이가 μ—†μœΌλ―€λ‘œ, κ°€λŠ₯ν•˜λ©΄ μ‚¬μš©ν•˜μ§€λ§μ•„λΌ (ꡐ수 – 학생)

Composition (κ°•ν•œ 관계) β—†

  • 뢀뢄은 항상 ν•˜λ‚˜μ˜ 전체에 ν¬ν•¨λ˜μ–΄μ•Ό ν•œλ‹€ (μžλ™μ°¨ – 바퀴)
  • μ „μ²΄λŠ” λΆ€λΆ„μ˜ 생성과 μ‚­μ œλ₯Ό μ±…μž„μ§„λ‹€ (CASECADE 관계)

μ—°κ΄€ 클래슀

  • λ§Žμ€ μͺ½μ— 속성을 μΆ”κ°€ν•œλ‹€.
  • 倚 λŒ€ 倚 κ΄€κ³„μ—μ„œ 속성을 μΆ”κ°€ν•΄μ„œ
    λ‚˜λˆŒ 수 μžˆλ‹€.

μΈν„°λ ‰μ…˜ λ‹€μ΄μ–΄κ·Έλž¨κ³Ό 클래슀 λ‹€μ΄μ–΄κ·Έλž¨

μΈν„°λ ‰μ…˜ λ‹€μ΄μ–΄κ·Έλž¨μ΄ 맀우 μ€‘μš”!
이λ₯Ό 그리고 λ‚˜μ„œ 클래슀 λ‹€μ΄μ–΄κ·Έλž¨μ„ κ·Έλ¦°λ‹€.

μ•‘ν‹°λΈŒ 클래슀

  • μžμ‹ μ˜ μŠ€λ ˆλ“œλ₯Ό μ‹€ν–‰ν•˜κ³  μ œμ–΄ν•œλ‹€. (μ–‘ μ˜†μ— 선을 μΉœλ‹€)
profile
뢉은 λ°° μ˜€μƒ‰ 딱닀ꡬ리 개발자 πŸ¦ƒCloud & DevOps

0개의 λŒ“κΈ€