Design Pattern

Prototype Pattern

January 24 2022

ํ”„๋กœํ† ํƒ€์ž… ๋””์ž์ธ ํŒจํ„ด ์—ฌ๋Ÿฌ ๋ชฌ์Šคํ„ฐ ํƒ€์ž…๊ณผ ๊ฐ ๋ชฌ์Šคํ„ฐ๋ฅผ ์†Œํ™˜ํ•˜๋Š” Spwaner๋ฅผ ๋””์ž์ธํ•ด๋ณด์ž

Observer Pattern

January 21 2022

๊ด€์ฐฐ์ž ํŒจํ„ด์˜ ์‚ฌ๋ก€ MVC ํŒจํ„ด C#์˜ event java์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Flyweight Pattern

January 19 2022

๊ฒฝ๋Ÿ‰ ํŒจํ„ด ์–ด๋–ค ๊ฐ์ฒด์˜ ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„ ์ด๋ฅผ ๊ฐ€๋ณ๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค ๋ฐ์ดํ„ฐ ์ค‘ ๊ณต์œ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์œ  ์ƒํƒœ intrinsic state๋‚˜ ์ž์œ ๋ฌธ๋งฅ context-free๋ผ ํ•œ๋‹ค ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์Šคํ„ด์Šค ๋ณ„๋กœ ๊ฐ’์ด ๋‹ค๋ฅธ ์™ธ๋ถ€ ์ƒํƒœ extrinsic state๋ผ ํ•œ๋‹ค GoF ํŒจํ„ด ์ค‘ ์œ ์ผํ•˜๊ฒŒ ํ•˜๋“œ...

Command Pattern

January 15 2022

์ •์˜ ํ”ํžˆ ์‹ค์ฒดํ™” ๋˜๋Š” ์ผ๊ธ‰์ด๋ผ๊ณ  ํ•˜๋ฉด ์–ด๋–ค ๊ฐœ๋…์„ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ์ฒด๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค ์ด ๊ฐœ๋…์€ ๊ฐ’์ผ ์ˆ˜๋„, ํ•จ์ˆ˜์™€ ๊ฐ™์€ ๋กœ์ง์ผ ์ˆ˜๋„ ์žˆ๋‹ค ์ฆ‰ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ ์‹ค์ฒดํ™”ํ•œ ๊ฒƒ์ด๋ฉฐ, ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๊ฐ์ฒด๋กœ ๊ฐ์ŒŒ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค ์ฝœ๋ฐฑ, ์ผ๊ธ‰ ํ•จ์ˆ˜, ํ•จ์ˆ˜ ํฌ์ธํ„ฐ, ํด...

Singleton ํŒจํ„ด

November 12 2021

Singleton ์˜ค์ง ํ•œ ๊ฐœ์˜ instance๋งŒ์„ ๊ฐ–๋„๋ก ๋ณด์žฅ ์ „์—ญ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์—๊ฒŒ ํ•„์š”

Adapter ํŒจํ„ด

October 28 2021

Adaper ํŒจํ„ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์›๋ณธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์—…๋ฐ์ดํŠธ ๋ฐ ๊ต์ฒด์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์Œ

ํŒฉํ† ๋ฆฌ ํŒจํ„ด(Factory Pattern)

January 13 2020

ํƒฌํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด(template method pattern) ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ ๋™์ž‘ ์ƒ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ”„๋กœ๊ทธ๋žจ ๋ผˆ๋Œ€๋ฅผ ์ •์˜ํ•˜๋Š” ํ–‰์œ„ ๋””์ž์ธ ํŒจํ„ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํŠน์ • ๋‹จ๊ณ„๋“ค์„ ๋‹ค์‹œ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค base class๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌ์กฐ์˜ ์ฃผ์š” ๊ณจ์กฐ๋ฅผ ํ™•๋ฆฝ subclass๊ฐ€ ๋‚˜๋จธ์ง€...

๋นŒ๋” ํŒจํ„ด(Builder Pattern)

January 13 2020

๋นŒ๋” ํŒจํ„ด(Builder Pattern) ๋นŒ๋” ํŒจํ„ด์€ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜ ๋ณต์žกํ•œ ๊ธฐ์กด ์ƒ์„ฑ์ž๋ฅผ ๋ณ„๋„๋กœ ์‹คํ–‰ํ•œ ๋’ค ์กฐํ•ฉ Builder ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๊ฐ ํŒŒ์ธ ๋ฅผ ์ƒ์„ฑ ํ›„ ์กฐํ•ฉ ํด๋ž˜์Šค๋Š” Builder์— ๊ฐ์ฒด์— object ์ƒ์„ฑ์„ ๋งก๊ธฐ๊ณ , ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ ํ•œ๋ฒˆ์— ๋ชจ...