Last updated
Last updated
๋ฐ์ฝ๋ ์ดํฐ ํจํด
์ ์๊ตฌ์ ์ตํต์ฑ์ ๋ค๋ฃฌ๋ค. ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์๋ก์ด ๋ถ์์ ๊ธฐ๋ฅ(์ฅ์)์ ์ถ๊ฐํ๊ณ ์ ํ ๋ ๊ธฐ์กด์ ํด๋์ค๋ฅผ ์์ ํ๋ ๊ฒ์ด ์๋๋ผ Decorator๋ฅผ ์ ์ธํ์ฌ ์ด๋ฅผ ๊ตฌํํ๋ ํด๋์ค๋ค์ด ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ํํ๋๋ก ํ๋ค.
Component
- ๊ธฐ๋ณธ ๊ธฐ๋ฅ๊ณผ ๋ถ์์ ๊ธฐ๋ฅ์ ๊ณตํต ๊ธฐ๋ฅ์ ์ ์ํ ์ธํฐํ์ด์ค
ConcreteComponent
- ๊ธฐ๋ณธ ๊ธฐ๋ฅ. ๋ณํ์ง ์๋ ๋ถ๋ถ์ ํด๋นํ๋ค.
Decorator
- ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋ง๋ถ์ด๊ณ ์ ํ๋ ๋ถ์ฐจ์ ๊ธฐ๋ฅ์ ๊ณตํต ๊ธฐ๋ฅ์ ์ ์ํ ํด๋์ค. ์ปดํฌ์งํธ ํจํด์ ์ ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ ์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ์ ๋ง๋ถ์ผ ์ ์๋๋ก ํ๋ค.
ConcreteDecorator
- ๋ถ์ฐจ์ ๊ธฐ๋ฅ๋ค์ ๊ตฌํํ๋ ํด๋์ค. ์ํ ๋๋ ํ๋์ ์ถ๊ฐํ๋ค.
๋ฐ์ฝ๋ ์ดํฐ ํจํด์ ์ฅ์ ์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ด๋ฌํ ๋ถ์ฐจ์ ๊ธฐ๋ฅ ์ถ๊ฐ๋ฅผ ๋ ๋ฆฝํ๊ฒ ํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๋ถ์ฐจ์ ๊ธฐ๋ฅ์ ์ฒด์ธ์ ํตํด ์ํ๋๋ฏ๋ก, ํด๋ผ์ด์ธํธ๋ ์ฒด์ธ์ ์ฒซ ๋ฒ์งธ ๊ฐ์ฒด๋ง ํธ์ถํ ๋ฟ ์ดํ์ ์ด๋ค ๋ถ์ฐจ์ ๊ธฐ๋ฅ๋ค์ด ํธ์ถ๋๋์ง ์ ํ์๊ฐ ์๋ค.
ํ์ง๋ง, ์ฒด์ธ ํํ๋ฅผ ์ด๋ฃจ๊ธฐ ๋๋ฌธ์ ์์ธ๋ฅผ ๋๊ฐ ์ฒ๋ฆฌํด์ผ ํ ์ง ๊ฒฐ์ ํ๊ธฐ ์ด๋ ต๋ค๋ ๋จ์ ์ด ์๋ค.