GOF 2

[pattern] Command pattern

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

CS 2022.06.25

[pattern]Builder pattern ์•Œ์•„๋ณด๊ธฐ

builder ํŒจํ„ด์„ ์˜ˆ์ „์—๋„ ๋ช‡๋ฒˆ ๋“ค์–ด๋ณด๊ธด ํ–ˆ์ง€๋งŒ ๊ด€์‹ฌ์žˆ๊ฒŒ ์‚ดํŽด ๋ณธ ๊ฒƒ์€ ํ•œ๋‘๋‹ฌ? ์ „์œผ๋กœ ์˜ค๋ž˜๋˜์ง€ ์•Š์•˜๋„ค์š”. ์ €๋Š” builder ํŒจํ„ด์ด๋ž€ ๊ฐœ๋…์ด ์ต์ˆ™ํ•ด์ง€๊ธฐ๊นŒ์ง€ ํ•œ๋‹ฌ ์ •๋„์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ ๋“ฏ ํ•ฉ๋‹ˆ๋ฐใ… ใ… (๋ฐ”๋ณด...) ์‹œ๊ฐ„๋‚ ๋•Œ ์งฌ์งฌ์ด ๊ฒ€์ƒ‰ํ•ด ๋ณด๊ณ  ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์„ ์ฃผ๋ณ€์— ๋ฌผ์–ด๊ฐ€๋ฉด์„œ ์กฐ๊ธˆ์”ฉ ์ต์ˆ™ํ•ด ์ง„ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ „ํ˜€ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์•„ ์ฐธ ๊ณ ์ƒ์„ ๋งŽ์ด ํ–ˆ์—ˆ๋Š”๋ฐ ๋ง์ด์ฃ !! ํšŒ์‚ฌ์—์„œ๋„ ์ง์ ‘ ์จ๋ณด๊ณ  (builder ํŒจํ„ด ์ž‘์„ฑ์„ ํšŒ์‚ฌ์—์„œ ์˜ค๋Š˜ ์ฒ˜์Œ ํ•ด๋ณธ๊ฑด ๋น„๋ฐ€ใ…Žใ…Ž) ๋ช‡๋ฒˆ ๋ณด๋‹ค๋ณด๋‹ˆ ์Šฌ์Šฌ ์ต์ˆ™ํ•ด ์ ธ์„œ ๊ธ€์„ ์ž‘์„ฑํ•ด์„œ ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋ฐ”๋กœ๋ฐ”๋กœ ์ˆ˜์ • ๋ฐ˜์˜ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค~ ๋ฐœ๋‹จ ์ถœ์ฒ˜: https://refactoring.guru/design-patterns/builder ์œ„์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ํ•˜..

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