Skip to content

Latest commit

Β 

History

History
35 lines (19 loc) Β· 1.65 KB

Mediator_Pattern.md

File metadata and controls

35 lines (19 loc) Β· 1.65 KB

Mediator Pattern

Mediator Pattern (μ€‘μž¬μž νŒ¨ν„΄)

λ‹€μŒκ³Ό 같이 μ—¬λŸ¬ ν΄λž˜μŠ€λ“€μ΄ μ„œλ‘œ κ°•ν•˜κ²Œ μ—°κ²°λ˜μ–΄ μ„œλ‘œλ₯Ό μ°Έμ‘°ν•˜λŠ” 경우λ₯Ό μƒκ°ν•΄λ³΄μž.

Mediator-Prev

ν•˜λ‚˜μ˜ ν΄λž˜μŠ€μ—μ„œ 변경이 μΌμ–΄λ‚˜λ©΄ μ—°κ΄€λœ λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œλ„ μˆ˜μ •μ΄ μΌμ–΄λ‚˜κ²Œ 되기 λ•Œλ¬Έμ—, μ œμ–΄ 흐름이 ν΄λž˜μŠ€λ§ˆλ‹€ 흩어져 μžˆμ–΄ μƒˆλ‘œμš΄ 클래슀λ₯Ό μΆ”κ°€ν•˜κΈ° λ³΅μž‘ν•˜λ‹€.

μ΄λŸ¬ν•œ 문제의 해결을 μœ„ν•΄ 각 ν΄λž˜μŠ€κ°„ μƒν˜Έμž‘μš©μ„ 도맑아 μ²˜λ¦¬ν•  클래슀λ₯Ό μ„ μ–Έν•˜λŠ” 것을 μ€‘μž¬μž νŒ¨ν„΄μ΄λΌκ³  ν•˜λ©°, 이 클래슀λ₯Ό μ€‘μž¬μž(Mediator)라고 ν•œλ‹€.

μœ„μ˜ 클래슀 λ‹€μ΄μ–΄κ·Έλž¨μ— μ€‘μž¬μž νŒ¨ν„΄μ„ μ μš©ν•œ κ²°κ³ΌλŠ” λ‹€μŒκ³Ό κ°™λ‹€.

Apply-Mediator

각 ν΄λž˜μŠ€λŠ” μ€‘μž¬μž 클래슀λ₯Ό μ œμ™Έν•œ ν΄λž˜μŠ€μ™€ μ—°κ΄€ 관계λ₯Ό 가지지 μ•ŠλŠ”λ‹€. λŒ€μ‹  λ‹€λ₯Έ ν΄λž˜μŠ€μ™€ μƒν˜Έμž‘μš©ν•˜κ³ μž ν•  λ•Œ μ€‘μž¬μžλ₯Ό ν˜ΈμΆœν•΄ 이λ₯Ό μ²˜λ¦¬ν•œλ‹€.

κ΅¬ν˜„

Mediator-Pattern

μš©μ–΄

  • Mediator - 클래슀 κ°„ μƒν˜Έμž‘μš©μ„ 도맑아 μ²˜λ¦¬ν•˜λŠ” 클래슀
  • Colleague - μ€‘μž¬μžλ₯Ό ν˜ΈμΆœν•˜λŠ” 클래슀

μž₯점

  • M:N의 객체 관계λ₯Ό M:1둜 μ „ν™˜ν•˜μ—¬ 클래슀 κ°„ 연결을 λŠμŠ¨ν•˜κ²Œ ν•  수 μžˆλ‹€. 이λ₯Ό 톡해 변경에 λŒ€ν•œ 영ν–₯을 쀄일 수 μžˆλ‹€.
  • 클래슀 κ°„ μƒν˜Έμž‘μš© 자체λ₯Ό μΊ‘μŠν™”ν•˜μ—¬ λ³€κ²½μ˜ 영ν–₯을 쀄인닀.

μ£Όμ˜ν•  점

클래슀 κ°„ μƒν˜Έμž‘μš©μ„ ν•˜λ‚˜μ˜ ν΄λž˜μŠ€κ°€ λͺ¨λ‘ λ‹΄λ‹Ήν•˜κΈ° λ•Œλ¬Έμ— κ²½μš°μ— 따라 μ€‘μž¬μž ν΄λž˜μŠ€κ°€ λ„ˆλ¬΄ λ³΅μž‘ν•΄μ Έ μœ μ§€λ³΄μˆ˜κ°€ μ–΄λ €μ›Œμ§ˆ 수 μžˆλ‹€.