designpattern 3

[pattern] Command pattern

๋””์ž์ธํŒจํ„ด ์Šคํ„ฐ๋””์˜ ๋งˆ์ง€๋ง‰์ธ Command pattern ์ž…๋‹ˆ๋‹ค. ์ด 5๋ถ„ ์ค‘ ๋ฌด๋ ค 3๋ถ„์ด (์ € ํฌํ•จใ…Žใ…Ž) ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ํ–ˆ๋‹ค๋Š”(์—ˆ๋‹ค)๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  gitHub๋„ follow๋ฅผ ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์Šคํ„ฐ๋””๋กœ ๋””์ž์ธํŒจํ„ด์˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด ์•„์ฃผ ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ Factory pattern์„ ๋ณด๋Š”๋ฐ ์ •๋ง ํ•˜๋‚˜๋„ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์•˜์—ˆ๊ฑฐ๋“ ์š”. ์ง€๊ธˆ์€ ๊ทธ๋ž˜๋„ ์–ด๋Š์ •๋„ pattern์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋ฐ›์•„ ๋“ค์ผ ์ค€๋น„ ์ •๋„๋Š” ๋œ ๋“ฏ ํ•ด์„œ ๋งŽ์ด ๋ฟŒ๋“ฏํ•ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ๊ณ„์†ํ•ด์„œ ๋‹ค์–‘ํ•œ ์Šคํ„ฐ๋””๋ฅผ ํ†ตํ•ด ์ข€ ๋” ๋ฐœ์ „ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋ถ„๋“ค์„ ๋งŒ๋‚˜ ๊ฒฝํ—˜๋“ค์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค Command ํŒจํ„ด ์ปค๋งจ๋“œ ํŒจํ„ด์€ ํŠน์ • ๊ธฐ๋Šฅ๋“ค์„ ์บก์Šํ™” ์‹œํ‚ค๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๋‹ค์–‘ํ•œ..

CS 2022.06.25

[pattern] Iterator Pattern

ํ•ด๋‹น ๊ธ€์€ ์—ฌ๋Ÿฌ ๋ธ”๋กœ๊ทธ์—์„œ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ Refences๋ž€์— ์ฐธ์กฐํ•œ ๋ธ”๋กœ๊ทธ ์ฃผ์†Œ๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ–‰์œ„ ํŒจํ„ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด๋“ค์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํŒจํ„ดํ™”ํ•œ ๊ฒƒ์œผ๋กœ, ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด๋“ค์ด ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ฑ…์ž„์„ ๋ถ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ๋‹ค. ๊ฐ์ฒด์˜ ๊ธฐ๋Šฅ์€ ๋ณ€ํ•˜์ง€ ์•Š์ง€๋งŒ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ฌ๋ผ์งˆ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์‘์šฉ ๋ถ„์•ผ์— ๋”ฐ๋ผ ํ–‰์œ„๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด๋กœ ์˜ฎ๊ฒจ ๊ฐ€๊ฑฐ๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋Œ€์ฒด๋˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„ ์ƒ์† ๊ฐœ๋…์„ ์ด์šฉํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ–‰์œ„ ํŒจํ„ด์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ–‰์œ„ ๊ด€๋ จ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋…๋ฆฝ์ ์œผ๋กœ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ฆ‰ ํ–‰์œ„ ํŒจํ„ด์€ ๋ฉ”์‹œ์ง€ ๊ตํ™˜๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์œผ๋กœ, ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ํ–‰์œ„๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ๊ณผ ๊ด€๋ จ๋œ ํŒจํ„ด์„ ๋งํ•œ๋‹ค.[๋„ค์ด๋ฒ„ ์ง€์‹๋ฐฑ๊ณผ] Gof ๋””์ž์ธ ํŒจํ„ด (์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์†Œํ”„ํŠธ..

CS 2022.06.05

[pattern]Decorator pattern

[pattern]Decorator pattern ์ด ๋ธ”๋กœ๊ทธ ๊ธ€์€ [Design Pattern] ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์ด๋ž€ ๊ธ€์„ ๋‚˜๋ฆ„๋Œ€๋กœ ๊ฐ„๋žตํ•˜๊ฒŒ ๊ฐ„์ถ”๋ ค์„œ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌํ•ญ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์œ„์˜ ๋งํฌ ํ˜น์€ ํ•˜๋‹จ์˜ References๋ฅผ ํ™•์ธํ•ด ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. Decorator Pattern ๊ฐ์ฒด์˜ ๊ฒฐํ•ฉ ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ๋™์ ์œผ๋กœ ์œ ์—ฐํ•˜๊ฒŒ ํ™•์žฅ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํŒจํ„ด์œผ๋กœ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์˜ ์ข…๋ฅ˜๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ์— ๊ฐ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ Decorator ํด๋ž˜์Šค๋กœ ์ •์˜ ํ•œ ํ›„ ํ•„์š”ํ•œ Decorator ๊ฐ์ฒด๋ฅผ ์กฐํ•ฉํ•จ์œผ๋กœ์จ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์˜ ์กฐํ•ฉ์„ ์„ค๊ณ„ ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์„ ํ™œ์šฉํ•˜๋ฉด ํ•„์š” ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์˜ ์กฐํ•ฉ์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๊ตฌ์กฐ(Decorator๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์‹œ) ..

CS 2022.05.15
728x90
๋ฐ˜์‘ํ˜•