Mediator Pattern

Mediator Pattern (์ค‘์žฌ์ž ํŒจํ„ด)

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋“ค์ด ์„œ๋กœ ๊ฐ•ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์„œ๋กœ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.

Mediator-Prev

ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์—์„œ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜๋ฉด ์—ฐ๊ด€๋œ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ๋„ ์ˆ˜์ •์ด ์ผ์–ด๋‚˜๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์ œ์–ด ํ๋ฆ„์ด ํด๋ž˜์Šค๋งˆ๋‹ค ํฉ์–ด์ ธ ์žˆ์–ด ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋ณต์žกํ•˜๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ๊ฐ ํด๋ž˜์Šค๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ๋„๋งก์•„ ์ฒ˜๋ฆฌํ•  ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์„ ์ค‘์žฌ์ž ํŒจํ„ด์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด ํด๋ž˜์Šค๋ฅผ ์ค‘์žฌ์ž(Mediator)๋ผ๊ณ  ํ•œ๋‹ค.

์œ„์˜ ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์— ์ค‘์žฌ์ž ํŒจํ„ด์„ ์ ์šฉํ•œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Apply-Mediator

๊ฐ ํด๋ž˜์Šค๋Š” ์ค‘์žฌ์ž ํด๋ž˜์Šค๋ฅผ ์ œ์™ธํ•œ ํด๋ž˜์Šค์™€ ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค. ๋Œ€์‹  ๋‹ค๋ฅธ ํด๋ž˜์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ ์ค‘์žฌ์ž๋ฅผ ํ˜ธ์ถœํ•ด ์ด๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

๊ตฌํ˜„

Mediator-Pattern

์šฉ์–ด

  • Mediator - ํด๋ž˜์Šค ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ๋„๋งก์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค

  • Colleague - ์ค‘์žฌ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํด๋ž˜์Šค

์žฅ์ 

  • M:N์˜ ๊ฐ์ฒด ๊ด€๊ณ„๋ฅผ M:1๋กœ ์ „ํ™˜ํ•˜์—ฌ ํด๋ž˜์Šค ๊ฐ„ ์—ฐ๊ฒฐ์„ ๋А์Šจํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์˜ํ–ฅ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

  • ํด๋ž˜์Šค ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ์ž์ฒด๋ฅผ ์บก์Аํ™”ํ•˜์—ฌ ๋ณ€๊ฒฝ์˜ ์˜ํ–ฅ์„ ์ค„์ธ๋‹ค.

์ฃผ์˜ํ•  ์ 

ํด๋ž˜์Šค ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๊ฐ€ ๋ชจ๋‘ ๋‹ด๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ค‘์žฌ์ž ํด๋ž˜์Šค๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•ด์ ธ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ๋‹ค.

Last updated