๋์์ธ ํจํด
GoF(Gang of Four) ์ฒ์ ์ ์ํ์ฌ ๊ตฌ์ฒดํ
- ์์คํ ์์ ์ํํธ์จ์ด ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๊ธฐ ์ํ ์ฐธ๊ณ ๋ชจ๋ธ
- ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋จ์ ์ค๊ณ ์ ์์ฃผ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ํ ๋ฐ๋ณต์ ํด๊ฒฐ ๋ฐฉ๋ฒ
โป ์ํคํ ์ฒ ํจํด : ์ ์ฒด ์์คํ ์ ๊ตฌ์กฐ ์ค๊ณ
์์ฑ ํจํด
๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๊ณํ๋ ํจํด
- ํ๋ก๊ทธ๋จ์์ ๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ ์์ฑํ๊ณ ์กฐํฉํ ์ง๋ฅผ ๋ค๋ฃจ๋ ํจํด
- ๋จ์ํ new๋ก ๋ง๋๋ ๊ฒ ์๋๋ผ, ์ํฉ์ ๋ง๊ฒ ๊ฐ์ฒด ์์ฑ ๊ณผ์ ์ ์บก์ํํ๊ฑฐ๋, ๊ณตํต ์ธํฐํ์ด์ค๋ก ํต์ผ์์ผ์ค
| Abstract Factory | ๊ตฌ์ฒด์ ์ธ ํด๋์ค์ ์์กดํ์ง ์๊ณ , ์๋ก ์ฐ๊ด๋๊ฑฐ๋ ์์กด์ ์ธ ๊ฐ์ฒด๋ค์ ์งํฉ์ ์์ฑํ๋ ์ธํฐํ์ด์ค ์ ๊ณต |
| Builder | ๊ฐ์ฒด ์์ฑ ๊ณผ์ ์ ์บก์ํํ์ฌ ๊ฐ์ฒด๋ฅผ ์กฐ๋ฆฝํ๋ฉฐ ์์ฑ, ๋์ผํ ์์ฑ ์ ์ฐจ์์ ์๋ก ๋ค๋ฅธ ๊ฒฐ๊ณผ ์ ๊ณต |
| Factory Method | ์์ ํด๋์ค์์ ๊ฐ์ฒด ์์ฑ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๊ณ , ์ธ์คํด์ค๋ฅผ ์์ฑํ ํด๋์ค๋ ์๋ธํด๋์ค์์ ๊ฒฐ์ |
| Prototype | ์ํ(Prototype) ์ธ์คํด์ค๋ฅผ ๋ณต์ ํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑ |
| Singleton | ํด๋์ค์ ์ธ์คํด์ค๊ฐ ์ค์ง ํ๋๋ง ์กด์ฌํ๋๋ก ๋ณด์ฅํ๊ณ , ์ ์ญ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋๋ก ํจ |
๊ตฌ์กฐ ํจํด
ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ์กฐํฉํด ๋ ํฐ ๊ตฌ์กฐ๋ฅผ ๋ง๋๋ ํจํด
- ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ(์ฆ, ํด๋์ค ๊ฐ ๊ด๊ณ)๋ฅผ ํจ์จ์ ์ผ๋ก ์ค๊ณํ๋ ๋ฐ ์ฌ์ฉ
- ๊ฐ์ฒด๋ค์ด ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋์ด ํ๋ ฅํ ์ง, ํ์ฅ ์ ์ฝ๋ ์์ ์ ์ต์ํํ ์ง๋ฅผ ๋ค๋ฃธ
| Adapter | ๋นํธํ ์ธํฐํ์ด์ค์ ํธํ์ฑ์ ๋ถ์ฌํ๋๋ก ๋ณํ. ๊ธฐ์กด ํด๋์ค๋ฅผ ๊ฐ์ธ์(wrapper) ์ธํฐํ์ด์ค ๋ณํ |
| Bridge | ๊ตฌํ๋ถ์ ์ถ์๋ถ๋ฅผ ๋ถ๋ฆฌํ์ฌ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๋ณ๊ฒฝ/ํ์ฅ ๊ฐ๋ฅํ๊ฒ ํจ |
| Composite | ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๋ถ๋ถ/์ ์ฒด ๊ณ์ธต์ ํํ, ๋ณตํฉ ๊ฐ์ฒด์ ๋จ์ผ ๊ฐ์ฒด๋ฅผ ๋์ผํ๊ฒ ๋ค๋ฃธ |
| Decorator | ์์ ๋์ ๊ฐ์ฒด์ ๊ฒฐํฉ์ ํตํด ๊ธฐ๋ฅ์ ๋์ ์ผ๋ก ํ์ฅ |
| Facade | ๋ณต์กํ ์๋ธ์์คํ ์ ๋จ์ํ ์ธํฐํ์ด์ค๋ก ํํ |
| Flyweight | ์ธ์คํด์ค๋ฅผ ๊ณต์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝ (ํด๋์ค ๊ฒฝ๋ํ) |
| Proxy | ์ ๊ทผ์ด ์ด๋ ค์ด ๊ฐ์ฒด๋ฅผ ๋์ ์ ์ดํ๋ ๋๋ฆฌ์ ์ญํ ์ํ |
ํ์ ํจํด
๊ฐ์ฒด๋ค ๊ฐ์ ์ํธ์์ฉ(ํ๋ ๋ฐฉ์)์ ์ ์ํ๋ ํจํด
- ํ๋ก๊ทธ๋จ ๋ด ๊ฐ์ฒด๋ค์ด ์ด๋ป๊ฒ ํ๋ ฅํ๊ณ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋์ง๋ฅผ ๋ค๋ฃธ
- ๋ก์ง ํ๋ฆ, ์ ์ด, ์ญํ ๋ถ๋ด๊ณผ ๊ด๋ จ๋ ํจํด
| Chain of Responsibility | ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๊ฐ์ฒด๊ฐ ๋ ์ด์ ์์ ๋, ํ ๊ฐ์ฒด๊ฐ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ฉด ๋ค์ ๊ฐ์ฒด๋ก ์์ฒญ์ ์ ๋ฌ |
| Command | ์์ฒญ์ ๊ฐ์ฒด๋ก ์บก์ํํ์ฌ ๋ช ๋ น์ ๋งค๊ฐ๋ณ์ํํ๊ณ ํ์ ์ ์ฅํ๊ฑฐ๋ ๋ก๊ทธ์ ๊ธฐ๋ก ๊ฐ๋ฅ |
| Interpreter | ์ธ์ด์ ๋ฌธ๋ฒ์ ํด๋์ค ๊ตฌ์กฐ๋ก ํํ |
| Iterator | ์ปฌ๋ ์ ์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๋ ธ์ถํ์ง ์๊ณ ์์๋ค์ ์์ฐจ์ ์ผ๋ก ์ ๊ทผํ ์ ์๊ฒ ํจ |
| Mediator | ๊ฐ์ฒด ๊ฐ ๋ณต์กํ ์ํธ์์ฉ์ ์บก์ํํ์ฌ ๊ฐ์ฒด๋ฅผ ์ง์ ์ฐธ์กฐํ์ง ์๋๋ก ์ค์ฌ์ ์ญํ ์ํ |
| Memento | ๊ฐ์ฒด์ ์ํ๋ฅผ ์ ์ฅํ๊ณ ๋ณต์ํ ์ ์๋๋ก ํจ |
| Observer | ํ ๊ฐ์ฒด์ ์ํ ๋ณํ๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ์๋์ผ๋ก ํต๋ณด๋์ด ๊ฐฑ์ ๋๋๋ก ํจ |
| State | ๊ฐ์ฒด์ ๋ด๋ถ ์ํ์ ๋ฐ๋ผ ๋์์ด ๋ฌ๋ผ์ง๋๋ก ํจ |
| Strategy | ์๊ณ ๋ฆฌ์ฆ ๊ตฐ์ ์ ์ํ๊ณ , ๊ฐ๊ฐ์ ์บก์ํํ์ฌ ๊ต์ฒด ๊ฐ๋ฅํ๊ฒ ํจ |
| Template Method | ์์ ํด๋์ค์์ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ , ํ์ ํด๋์ค์์ ์ธ๋ถ ๋จ๊ณ๋ฅผ ๊ตฌํ |
| Visitor | ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์๋ก์ด ์ฐ์ฐ์ ์ถ๊ฐํ ์ ์๋๋ก ํจ |
'๐ป CS > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์ด์์ฒด์ ] ํ๋ก์ธ์ค ์ค์ผ์ค (0) | 2025.10.22 |
|---|---|
| [์ํํธ์จ์ด ๊ตฌ์ถ] ๋ชจ๋์ ๊ฒฐํฉ๋(Coupling)์ ์์ง๋(Cohesion) (0) | 2025.10.21 |
| [์ ๋ณด ๋ณด์] ๋ณด์ ๊ณต๊ฒฉ ๊ธฐ๋ฒ (0) | 2025.10.16 |
| [์ํํธ์จ์ด ๊ตฌ์ถ] ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง (0) | 2025.10.16 |
| [๋ฐ์ดํฐ๋ฒ ์ด์ค] ํค์ ๋ฌด๊ฒฐ์ฑ (2) | 2025.10.16 |