15์ฅ์ ์ค๊ณ๋ฅผ ์ฌ์ฌ์ฉํ๋ ๋์์ธ ํจํด๊ณผ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๋ ํ๋ ์์ํฌ์ ๋ํด ์ค๋ช ํ๊ณ , ์ด์ movie ์์ ์ ์ ์ฉ๋ ๋์์ธ ํจํด์ ์๊ฐํ๋ค.
๋์์ธ ํจํด์ด๋?
- ์ํํธ์จ์ด ์ค๊ณ์์ ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ํด ๋ฐ๋ณต์ ์ผ๋ก ์ ์ฉํ ์ ์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ค(์ค๊ณ ์ฌ์ฌ์ฉ).
- ๋์์ธ ํจํด์ ํน์ ์ ํฉ(context)๋ด์์ ์ผ๋ฐ์ ์ธ ์ค๊ณ ๋ฌธ์ (problem)๋ฅผ ํด๊ฒฐ(solution)ํ๋ฉฐ, ํ๋ ฅํ๋ ์ปดํฌ๋ํธ๋ค ์ฌ์ด์์ ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ์ํ๋ ๊ตฌ์กฐ๋ฅผ ์์ ํ๋ค(p.516).
- ํจํด์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์ญํ , ์ฑ ์, ํ๋ ฅ์ ํ ํ๋ฆฟ์ด๋ค(p.517).
- ํน์ ํ ๋ณ๊ฒฝ์ ์บก์ํํจ์ผ๋ก์จ ํ๋ ฅ์ ์ผ๊ด์ฑ ์๊ณ ์ ์ฐํ๊ฒ ํด์ค๋ค. ๋ฐ๋ผ์, ์ด๋ค ๋์์ธ ํจํด์ด ์ด๋ค ๋ณ๊ฒฝ์ ์บก์ํํ๋์ง๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ค.
Strategy ํจํด
- ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ ๋์ ์ผ๋ก ๊ต์ฒดํ ์ ์๋ ์ญํ ๊ณผ ์ฑ ์์ ์งํฉ ์ ๊ณต
Bridge ํจํด
- ์ถ์ํ์ ์กฐํฉ์ผ๋ก ์ธํ ํด๋์ค์ ํญ๋ฐ์ ์ธ ์ฆ๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ญํ ๊ณผ ์ฑ ์์ ์ถ์ํ์ ๊ตฌํ์ ๋ ๊ฐ์ ์ปค๋ค๋ ์งํฉ์ผ๋ก ๋ถํดํจ์ผ๋ก์จ ์ค๊ณ๋ฅผ ํ์ฅ ๊ฐ๋ฅํ๊ฒ ๋ง๋ฆ
Observer ํจํด
- ์ ์ฐํ ํต์ง ๋ฉ์ปค๋์ฆ์ ๊ตฌ์ถํ๊ธฐ ์ํด ๊ฐ์ฒด ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ ์ ์๋ ์ญํ ๊ณผ ์ฑ ์์ ์งํฉ ์ ๊ณต
Composite ํจํด
- client๊ฐ ๊ฐ๋ณ ๊ฐ์ฒด์ ๋ณตํฉ ๊ฐ์ฒด๋ฅผ ๋์ผํ๊ฒ ์ทจ๊ธํ ์ ์์. component, composite, leaf์ผ๋ก ๊ตฌ์ฑ๋จ
- ๊ฐ๋ณ ๊ฐ์ฒด์ ๋ณตํฉ ๊ฐ์ฒด๋ผ๋ ๊ฐ์ฒด์ ์์ ๊ด๋ จ๋ ๋ณ๊ฒฝ์ ์บก์ํํ๋ ๊ฒ์ด ๋ชฉ์ ์
Template Method ํจํด
- ์๊ณ ๋ฆฌ์ฆ์ ์บก์ํํ๊ธฐ ์ํด ํฉ์ฑ ๊ด๊ณ๊ฐ ์๋ ์์ ๊ด๊ณ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ
- ์ถ์ ํด๋์ค๋ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํด ๋ณ๊ฒฝ์ ์บก์ํํ๋ ํฉ์ฑ๊ณผ ๋ฌ๋ฆฌ ์์์ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ์ถ์ ๋ฉ์๋๋ฅผ ์ด์ฉํด ๋ณ๊ฒฝ์ ์บก์ํํด์ผ ํจ
- ๋ถ๋ชจ ํด๋์ค๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ๊ตฌ์ฒด์ ์ธ ๋จ๊ณ๋ ์์ ํด๋์ค์์ ์ ์ํ๊ฒ ํจ์ผ๋ก์จ ๋ณ๊ฒฝ์ ์บก์ํํ ์ ์๋ ๋์์ธ ํจํด
Decorator ํจํด
- ๊ฐ์ฒด์ ํ๋์ ๋์ ์ผ๋ก ์ถ๊ฐํ ์ ์๊ฒ ํด์ฃผ๋ ํจํด์ผ๋ก์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ฒด์ ํ๋์ ๊ฒฐํฉํ๊ธฐ ์ํด ๊ฐ์ฒด ํฉ์ฑ ์ฌ์ฉ
- ์ ํ์ ์ธ ํ๋์ ๊ฐ์์ ์์์ ๋ํ ๋ณ๊ฒฝ์ ์บก์ํ ํ ์ ์์
ํค๋ํผ์คํธ ๋์์ธ ํจํด ์ฑ ์๋ ๋น์ทํ ๋ด์ฉ์ด ๋์ค๋๋ฐ, ํจํด์ ๋๋ฌด ํจ๋ถ๋ก ํ๋นํ ์ด์ ์์ด ์ ์ฉํ๋ฉด ์๋๋ค๊ณ ํ๋ค. ์ด๋ค ํจํด์ ์ ์ฉํ๋ฉด ์๋๋ ์ง๋ ์์์ผ ํ๊ณ ์ด์ ์์ด ์ ์ฉ๋ ํจํด์ ์ฝ๋๋ฅผ ์ฝ๋ ์ฌ๋์(ํนํ, ํจํด์ ์ต์ํ ์ฌ๋๋ค) ํผ๋์ค๋ฝ๊ฒ ํ ๋ฟ์ด๋ค.
ํจํด์ ๋ณต์ก์ฑ์ ๊ฐ์น๊ฐ ๋จ์์ฑ์ ๋์ด์ค ๋๋ง ์ ๋นํ๋ผ์ผ ํ๋ค. p.522
ํ๋ ์์ํฌ๋?
- ์ถ์ ํด๋์ค๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๊ณ ์ธ์คํด์ค ์ฌ์ด์ ์ํธ์์ฉ์ ํตํด ์์คํ ์ ์ฒด ํน์ ์ผ๋ถ๋ฅผ ๊ตฌํํด ๋์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ค๊ณ
- ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์๊ฐ ํ์ฌ์ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ์ปค์คํฐ๋ง์ด์ง ํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณจ๊ฒฉ (์ฝ๋ ์ฌ์ฌ์ฉ)
์์กด์ฑ์ ์ญ์ ์ํจ ๊ฐ์ฒด์งํฅ ๊ตฌ์กฐ์์๋ ๋ฐ๋๋ก ํ๋ ์์ํฌ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ ์๋ธํด๋์ค์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค. ๋ฐ๋ผ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ฐ๋ณ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ๋ ์์ํฌ๋ก ์ ์ด ํ๋ฆ์ ์ฃผ์ฒด๊ฐ ์ด๋ํ๋ค. ์ฆ, ์์กด์ฑ์ ์ญ์ ์ํค๋ฉด ์ ์ด ํ๋ฆ์ ์ฃผ์ฒด ์ญ์ ์ญ์ ๋๋ค. ์ด๋ฅผ ์ ์ด ์ญ์ (Inversion of Control) ์๋ฆฌ, ๋๋ ํ ๋ฆฌ์ฐ๋(Hollywood) ์๋ฆฌ๋ผ๊ณ ํ๋ค. p.529
'์คํฐ๋ > ์ค๋ธ์ ํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค๋ธ์ ํธ] ๋ถ๋ก B, C 'ํ์ ๊ณ์ธต์ ๊ตฌํ', '๋์ ์ธ ํ๋ ฅ, ์ ์ ์ธ ์ฝ๋' (0) | 2023.02.10 |
---|---|
[์ค๋ธ์ ํธ] ๋ถ๋ก A '๊ณ์ฝ์ ์ํ ์ค๊ณ' (0) | 2023.02.03 |
[์ค๋ธ์ ํธ] 14์ฅ '์ผ๊ด์ฑ ์๋ ํ๋ ฅ' (0) | 2023.01.14 |
[์ค๋ธ์ ํธ] 13์ฅ '์๋ธํด๋์ฑ๊ณผ ์๋ธํ์ดํ' (0) | 2023.01.06 |
[์ค๋ธ์ ํธ] 12์ฅ '๋คํ์ฑ' (0) | 2022.12.30 |
๋๊ธ