Post

⛓️ Java Design-Pattern 01 - κ°œμš”

⛓️ Java Design-Pattern 01 - κ°œμš”

πŸ“— γ€ŽJAVA μ–Έμ–΄λ‘œ λ°°μš°λŠ” λ””μžμΈ νŒ¨ν„΄ : μ‰½κ²Œ λ°°μš°λŠ” GoF의 23κ°€μ§€ λ””μžμΈ νŒ¨ν„΄γ€λ₯Ό 읽고 μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€.

체크 포인트

βœ… λ””μžμΈ νŒ¨ν„΄μ΄ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μ•„λ‹ˆλ‹€.

  • 라이브러리 μ•ˆμ—μ„œ Design-Pattern이 μ‚¬μš©λ˜λŠ” 것이닀.
  • Design-Pattern을 μ΄ν•΄ν•˜κ³  μžˆλ‹€λ©΄ 처음 λ³΄λŠ” λΌμ΄λΈŒλŸ¬λ¦¬λ”λΌλ„ 역할을 μ΄ν•΄ν•˜λŠ” 데 도움이 λœλ‹€.

βœ… ν”„λ‘œκ·Έλž¨μ„ μ™„μ„±ν’ˆμœΌλ‘œ 보지 μ•ŠλŠ”λ‹€.

  • Design-Pattern의 λͺ©ν‘œ 쀑 ν•˜λ‚˜λŠ” ν”„λ‘œκ·Έλž¨μ˜ μž¬μ‚¬μš©μ΄λ‹€.
  • κ·ΈλŸ¬λ―€λ‘œ ν”„λ‘œκ·Έλž¨μ„ μ™„μ„±ν•˜λŠ” 것이 μ•„λ‹ˆλΌ 끝없이 κΈ°λŠ₯을 ν™•μž₯ν•΄ κ°€λŠ” 것이닀.
  • λ‹€μŒκ³Ό 같은 λ¬ΌμŒμ„ 항상 κ°–κ³  μžˆμ–΄μ•Ό ν•œλ‹€.

β€œμ–΄λ–€ κΈ°λŠ₯이 ν™•μž₯될 κ°€λŠ₯성이 μžˆλŠ”κ°€?” β€œκΈ°λŠ₯을 ν™•μž₯ν•  λ•Œ μ–΄λŠ 클래슀λ₯Ό μˆ˜μ •ν•΄μ•Ό ν•˜λŠ”κ°€?”
β€œμˆ˜μ •ν•  ν•„μš”κ°€ μ—†λŠ” 것은 μ–΄λŠ ν΄λž˜μŠ€μΈκ°€?”

βœ… λ‹€μ΄μ–΄κ·Έλž¨μ€ λ³΄λŠ” 것이 μ•„λ‹ˆλΌ μ½λŠ” 것이닀.

  • λ‹€μ΄μ–΄κ·Έλž¨μ€ λ‹¨μˆœν•œ 그림처럼 ν•œλˆˆμ— 전체 λͺ¨μŠ΅μ„ μ•Œ 수 μžˆλŠ” 것이 μ•„λ‹ˆλΌ, 뢄석해 κ°€λ©΄μ„œ μ½λŠ” 것이닀.

βœ… 역할을 μ΄ν•΄ν•œλ‹€.

  • ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€κ°€ μ–΄λ–€ 역할을 ν•˜λŠ”μ§€ μ£Όλͺ©ν•˜λ©΄μ„œ μ½λŠ”λ‹€.

βœ… 슀슀둜 예제λ₯Ό 생각해본닀.

  • 직접 μ„€κ³„λ‚˜ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  λ•Œ ν•™μŠ΅ν•œ Design-Pattern이 ν•΄λ‹Ήλ˜μ§€ μ•Šμ„μ§€ 생각해 보자.

μ±…μ—μ„œ λ‹€λ£¨λŠ” λ‹€μ΄μ–΄κ·Έλž¨ μœ ν˜•

βœ… 클래슀 λ‹€μ΄μ–΄κ·Έλž¨

  • ν΄λž˜μŠ€μ—μ„œ λ©”μ„œλ“œ 이름을 보고 일반 λ©”μ„œλ“œμ™€ 좔상 λ©”μ„œλ“œλ₯Ό κ΅¬λ³„ν•œλ‹€.
  • 그리고 ν™”μ‚΄ν‘œλ₯Ό ν™•μΈν•˜μ—¬ μ–΄λŠ ν΄λž˜μŠ€κ°€ μ–΄λ–€ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜λŠ”μ§€ ν™•μΈν•œλ‹€.
  • 이런 μ‹μœΌλ‘œ λ‹€μ΄μ–΄κ·Έλž¨ λ‚΄ ꡬ성 μš”μ†Œκ°€ 무엇을 μ˜λ―Έν•˜λŠ”μ§€ 읽닀 보면 λ‹€μ΄μ–΄κ·Έλž¨ μ „μ²΄μ—μ„œ μ£Όμž₯ν•˜λŠ” λ‚΄μš©μ„ 이해할 수 있게 λœλ‹€.

βœ… μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨

  • μ‹œκ°„ μˆœμ„œλŒ€λ‘œ μ–΄λŠ κ°μ²΄μ—μ„œ μ–΄λŠ 객체가 ν˜ΈμΆœλ˜λŠ”μ§€ ν™•μΈν•˜λ‹€ 보면 νŒ¨ν„΄μ—μ„œ 각 객체의 역할을 μ‘°κΈˆμ”© μ•Œκ²Œ λœλ‹€.

회고

  • ν”„λ‘œμ νŠΈμ— μ–΄λ–»κ²Œ 적용 ν•  수 μžˆλŠ” μ§€λ₯Ό κ³ λ €ν•˜λ©° 읽어보렀고 ν•œλ‹€.
This post is licensed under CC BY 4.0 by the author.