πŸ“œ CleanCode

[CleanCode]클래슀 1

뉴이 NUEY 2024. 10. 8. 00:04
λ°˜μ‘ν˜•

 

클래슀 μ„ μ–Έ μˆœμ„œ

  1. λ³€μˆ˜ λͺ©λ‘
    1. 정적 곡개 μƒμˆ˜
    2. 정적 λΉ„κ³΅κ°œ λ³€μˆ˜
    3. λΉ„κ³΅κ°œ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜
    4. κ·Έ μ™Έ λ³€μˆ˜ λͺ©λ‘
  2. ν•¨μˆ˜
    1. 곡개 ν•¨μˆ˜
    2. λΉ„κ³΅κ°œ ν•¨μˆ˜λŠ” μžμ‹ μ„ ν˜ΈμΆœν•˜λŠ” κ³  ν•¨μˆ˜ 직후에 λ„£λŠ”λ‹€
곡개 λ³€μˆ˜κ°€ ν•„μš”ν•œ κ²½μš°λŠ” 거의 μ—†λ‹€.
즉, 좔상화 단계가 순차적으둜 λ‚΄λ €κ°„λ‹€.

μΊ‘μŠν™”
: λ³€μˆ˜μ™€ μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜λŠ” κ³΅κ°œν•˜μ§€ μ•ŠλŠ” 편이 λ‚«λ‹€

2024.04.02 - [β˜• μžλ°” JAVA/β˜• ν΄λž˜μŠ€μ™€ ν•¨μˆ˜ Class & Method] - [JAVA]μ ‘κ·Ό μ œμ–΄μž/μ œν•œμž access modifier

ν˜„μž¬ 클래슀만 λ˜λ„λ‘ private 제일 μΆ”μ²œ. 데이터 내보낼 땐 ν•¨μˆ˜λ‘œ.
λ•Œλ‘œλŠ” 같은 νŒ¨ν‚€μ§€ μ•ˆκΉŒμ§€λ§Œ 호좜 κ°€λŠ₯ν•˜λ„λ‘ protectecλ‚˜ default둜 ν•œλ‹€.

private을 μ“°λŠ” 게 이상적이닀.
ν•˜μ§€λ§Œ 같은 νŒ¨ν‚€μ§€ μ•ˆμ—μ„œ μ“°μ΄λŠ” κ²½μš°μ—λŠ” protectedλ‚˜ defaultλ₯Ό μ‚¬μš©ν•œλ‹€.

ν•˜μ§€λ§Œ κ·Έ 전에 λΉ„κ³΅κ°œ μƒνƒœλ₯Ό μœ μ§€ν•  방법을 κ°•κ΅¬ν•œλ‹€.
μΊ‘μŠν™”λ₯Ό ν’€μ–΄μ£ΌλŠ” 결정은 μ–Έμ œλ‚˜ μ΅œν›„μ˜ 방법이닀.

ν΄λž˜μŠ€λŠ” μž‘μ•„μ•Ό ν•œλ‹€
→ μ±…μž„μ΄ 적어야 ν•œλ‹€

μ•ˆ 쒋은 예 ν•œ ν΄λž˜μŠ€μ— κΈ°λŠ₯을 λͺ°μ•„ λ„£μœΌλ©΄ μ±…μž„μ΄ λ§Žμ•„μ§„λ‹€.
클래슀 이름은 ν•΄λ‹Ή 클래슀 μ±…μž„μ„ κΈ°μˆ ν•΄μ•Ό ν•œλ‹€.

  • λ§Œμ•½ κ°„κ²°ν•œ 이름이 λ– μ˜€λ₯΄μ§€ μ•Šκ³  Processor, Manager, Superκ°€ λ“€μ–΄κ°€μ•Ό ν•œλ‹€λ©΄ 클래슀 크기가 큰 것이닀.
  • 클래슀 μ„€λͺ…을 if, and, or, but (만일, 그리고, ν•˜λ©°, ν•˜μ§€λ§Œ)을 μ‚¬μš©ν•˜μ§€ μ•Šκ³ μ„œ 25단어 λ‚΄μ™Έλ‘œ 적을 수 μžˆμ–΄μ•Ό ν•œλ‹€.

단일 μ±…μž„ 원칙
SRP
Single Responsibility Principle
: ν΄λž˜μŠ€λ‚˜ λͺ¨λ“ˆμ„ λ³€κ²½ν•  μ΄μœ κ°€ ν•˜λ‚˜μ—¬μ•Ό ν•œλ‹€.

μ–Έμ œ 이 클래슀λ₯Ό μˆ˜μ •ν•΄μ•Ό

  1. 둜그인 κΈ°λŠ₯을 μˆ˜μ •μ΄ ν•„μš”ν•  λ•Œ
  2. κ²Œμ‹œκΈ€ κΈ°λŠ₯을 μˆ˜μ •ν•  λ•Œ
  3. λŒ“κΈ€μ„ μˆ˜μ •ν•  λ•Œ
  4. ..
 ν΄λž˜μŠ€λ‚˜ λͺ¨λ“ˆμ„ μˆ˜μ •ν•΄μ•Όν•˜λŠ” μ΄μœ λŠ” ν•˜λ‚˜μ—¬μ•Ό ν•œλ‹€.

 SRPλŠ” κ°œλ°œμžλ“€μ΄ κ°€μž₯ λ¬΄μ‹œν•˜λŠ” κ·œμΉ™ 쀑 ν•˜λ‚˜λ‹€.
우리 λŒ€λ‹€μˆ˜λŠ” 'κΉ¨λ—ν•˜κ³  체계적인 μ†Œν”„νŠΈμ›¨μ–΄'보닀 'λŒμ•„κ°€λŠ” μ†Œν”„νŠΈμ›¨μ–΄'에 μ΄ˆμ μ„ λ§žμΆ˜λ‹€.

 λ§Žμ€ κ°œλ°œμžλ“€μ΄ 단칠 μ±…μž„ ν΄λž˜μŠ€κ°€ λ§Žμ•„μ§€λ©΄ 큰 그림을 μ΄ν•΄ν•˜κΈ° μ–΄λ €μ›Œμ§€κΈ° μš°λ €ν•œλ‹€.
큰 그림을 μ΄ν•΄ν•˜λ €λ©΄ 이 클래슀 μ € 클래슀λ₯Ό μˆ˜μ—†μ΄ μ™”λ‹€κ°”λ‹€ ν•΄μ•Όν•œλ‹€ κ±±μ •ν•œλ‹€.
 ν•˜μ§€λ§Œ ν΄λž˜μŠ€κ°€ μž‘λ“  크든 λΆ€ν’ˆ(method)μˆ˜λŠ” λΉ„μŠ·ν•˜λ‹€.

 'λ§Žμ€ μ„œλ₯˜λ₯Ό 정리할 λ•Œ 큰 μ„œλž λͺ‡ κ°œμ— λ‚˜λˆ μ„œ λ˜μ Έλ‘˜ 것인가, νŒŒμΌμ— 차곑차곑 λ‚˜λˆ  담을 것인가'
λ‹Ήμ—°νžˆ μž‘μ€ 클래슀 μ—¬λŸΏμœΌλ‘œ 이뀄진 μ‹œμŠ€ν…œμ΄ λ°”λžŒμ§ν•˜λ‹€.

 

λ°˜μ‘ν˜•

'πŸ“œ CleanCode' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[CleanCode]μ‹œμŠ€ν…œ 1  (0) 2024.10.10
[CleanCode]클래슀 2  (1) 2024.10.08
[CleanCode]λ‹¨μœ„ ν…ŒμŠ€νŠΈ  (2) 2024.10.03
[CleanCode]경계 2  (1) 2024.10.01
[CleanCode]경계 1  (1) 2024.10.01