๋””์ž์ธ ํŒจํ„ด์„ ๋ฐฐ์šฐ๊ธฐ ์ „์— ์ฃผ์˜ํ•  ์ ์€ ๋ฌด์—‡์ธ๊ฐ€?

๋””์ž์ธ ํŒจํ„ด ๊ณต๋ถ€ ์‹œ ์ฃผ์˜ํ•  ์ 

  • ๋””์ž์ธ ํŒจํ„ด์„ ๋ฐฐ์› ๋‹ค๊ณ  ๋ฐ”๋กœ ์“ธ ์ƒ๊ฐ์€ ํ•˜์ง€ ๋ง ๊ฒƒ
  • ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์ง€๋Š”๋ฐ ์ง‘์ค‘
  • ๋‚ด ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋„๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์ „๊นŒ์ง€.
  • ํŒจํ„ด์„ ๋ณด๊ณ  ๋‚˜์™€์•ผ ํ•˜๋Š” ๋ฐ˜์‘์€ โ€œ๋‚˜๋„ ๋น„์Šทํ•˜๊ฒŒ ํ–ˆ๋Š”๋ฐ ์•ฝ๊ฐ„์˜ ๋ณ€ํ˜•์ด ์žˆ๊ตฌ๋‚˜"
  • "์ด๊ฑด ์ƒˆ๋กœ์šด๋ฐ?โ€๋ผ๋ฉด ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์€ ๊ฒƒ
  • ๋””์ž์ธ ํŒจํ„ด์€ ๋งŒ๋Šฅ์ด ์•„๋‹ˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž˜ ๋ชปํ•˜๋Š” ์‚ฌ๋žŒ์ด ์ด๊ฑฐ ์ตํžŒ๋‹ค๊ณ  ๋” ์ž˜ํ•˜๋Š” ๊ฒƒ ์•„๋‹˜
  • ์‚ฌ์‹ค ์—ฌํƒœ๊นŒ์ง€ ๋งŽ์€ ํŒจํ„ด์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

์˜ฌ๋ฐ”๋ฅธ ๊ณต๋ถ€ ๋ฐฉ๋ฒ•

  1. ๋ฌธ์ œ๋ฅผ ๊ฒช๋Š”๋‹ค.
  2. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•œ๋‹ค.
  3. ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช๋Š”๋‹ค.
  4. ๊ฐ™์€ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•œ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ๊ฒฝํ—˜์ด ์Œ“์ด๊ณ , ์ •๋ฆฌ์˜ ๋Š๋‚Œ์œผ๋กœ ๋””์ž์ธ ํŒจํ„ด์„ ๋ณด์•„์•ผ ํ•œ๋‹ค.
  • ๋””์ž์ธ ํŒจํ„ด์„ ๋ฏธ๋ฆฌ ๊ณต๋ถ€ํ•˜๋ฉด, ๋ฌธ์ œ๋„ ๋ชจ๋ฅด๋Š” ์ƒํƒœ๋กœ ํ•ด๋ฒ•๋ถ€ํ„ฐ ์™ธ์šฐ๋Š” ๊ผด์ด ๋˜๋ฒ„๋ฆฐ๋‹ค.

์—ฌ๊ธฐ์„œ ๋ณผ ํŒจํ„ด๋“ค

  • ์ƒ์„ฑ(Creational)
    • Class
      • Factory Method
    • Object
      • Builder
  • ๊ตฌ์กฐ(Structural)
    • Object
      • Adapter
      • Proxy
  • ํ–‰์œ„(Behavioral)
    • Object
      • Chain of Responsibility
      • Observer

Reference