Chain of Responsibility Pattern

Chain of Responsibility Pattern (์ฑ…์ž„ ์—ฐ์‡„ ํŒจํ„ด)

Chain-Pattern

ํŠน์ • ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ฑ…์ž„์„ ๊ฐ–๋Š” ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋ฅผ ์ฒด์ธ ํ˜•ํƒœ๋กœ ์—ฐ๊ฒฐํ•˜๊ณ , ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค.

  1. ์ž์‹ ์ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ์ด๋ผ๋ฉด ์ฒ˜๋ฆฌ

  2. ์ž์‹ ์ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ์š”์ฒญ์ด๋ผ๋ฉด ์ƒ์œ„ ๊ฐ์ฒด์—๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ๋„˜๊น€

๊ตฌ์„ฑ ์š”์†Œ

  • Sender(Client) - ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ฐ์ฒด

  • Receiver(Handler) - ์š”์ฒญ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒด. ์ถ”์ƒํ™”๋œ ๊ฒƒ์œผ๋กœ ๊ตฌ์ฒด์ ์ธ Handler๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

ํŠน์ง•

  • ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” Sender๋Š” ํ•ด๋‹น ์š”์ฒญ์„ ์–ด๋–ค ๊ฐ์ฒด๊ฐ€ ์ฒ˜๋ฆฌํ• ์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ, ์š”์ฒญ ๊ฐ์ฒด์™€ ์ฒ˜๋ฆฌ ๊ฐ์ฒด ๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ์ค„์–ด๋“ ๋‹ค.

  • ์ฒ˜๋ฆฌ ๊ฐ์ฒด๊ฐ€ ๋™์ ์œผ๋กœ ์‚ฝ์ž…, ์‚ญ์ œ๋  ์ˆ˜ ์žˆ๋‹ค. (Linked List์ฒ˜๋Ÿผ) ๋•Œ๋ฌธ์— ์ฑ…์ž„ ๋ฐฐ์ •์ด ์œตํ†ต์ ์ด๊ณ  ๊ฐ์ฒด ๊ฐ„ ์ฑ…์ž„ ๋ถ„์‚ฐ์ด ์œ ์—ฐํ•˜๊ฒŒ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

  • ๊ทธ๋Ÿฌ๋‚˜ ์—ฐ๊ฒฐ์ด ์ฒ˜๋ฆฌ๋œ๋‹ค๋Š” ํ™•์‹ ์ด ์—†๋‹ค. ์—ฐ๊ฒฐ๊ณ ๋ฆฌ ๋‚ด ๋ชจ๋“  ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์„ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Last updated