Builder 2

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

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

CS 2022.04.23

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

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‹œ์ž‘ํ•œ์ง€ ์–ด๋Š๋ง 1๋…„์ด ๋„˜์—ˆ๋„ค์š”. ๊ทธ๋ ‡์ง€๋งŒ ์ œ๋Œ€๋กœ๋œ ๋””์ž์ธ ํŒจํ„ด์— ๋Œ€ํ•œ ๊ณต๋ถ€๋ฅผ ํ•ด๋ณธ ์ ์ด ์—†๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์Šคํ„ฐ๋””๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ์ฒซ์ฃผ์ œ์ธ factoryMethod pattern์„ ๊ณต๋ถ€ํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ factory pattern์ด ๋‹ค์–‘ํ•œ pattern(Singleton, Builder)์˜ base๊ฐ€ ๋˜๋”๊ตฐ์š”. ๊ทธ๋ž˜์„œ factory pattern์— ๋Œ€ํ•ด ์šฐ์„ ์ ์œผ๋กœ ์ •๋ฆฌ๋ฅผ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ ์ถ”์ƒํด๋ž˜์Šค์™€ ์ถ”์ƒ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ์•Œ๊ณ  ๊ฐ€๋ฉด ์ดํ•ดํ•˜๊ธฐ ์กฐ๊ธˆ ๋” ํŽธํ•  ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ฆฌํ•œ ์ฝ”๋“œ๊ฐ€ ๋ณด๊ณ ์‹ถ์œผ์‹  ๋ถ„์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ํ™•์ธํ•ด ์ฃผ์„ธ์š”. GitHub: Factory pattern ํŒจํ‚ค์ง€ Factory pattern Client ์ธก์—์„œ factory๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์›ํ•˜๋Š” Object..

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