๋ฐ์ํ
ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด (Factory Method Pattern)
- ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๋๋ฐ, ์ด๋ค ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ง๋ ์๋ธ ํด๋์ค์์ ๊ฒฐ์ ํ๊ฒ ๋ง๋๋ ํจํด
- ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ์ผ์ ์๋ธํด๋์ค์๊ฒ ๋งก๊ธฐ๋ ๊ฒ
- ๋ถ๋ชจ ์ถ์ ํด๋์ค๋ ์ธํฐํ์ด์ค์๋ง ์์กดํ๊ณ ์ค์ ๋ก ์ด๋ค ๊ตฌํ ํด๋์ค๋ฅผ ํธ์ถํ ์ง๋ ์๋ธ ํด๋์ค์์ ๊ตฌํ
- ์๋ก์ด ๊ตฌํ ํด๋์ค๊ฐ ์ถ๊ฐ๋์ด๋ ๊ธฐ์กด Factory ์ฝ๋์ ์์ ์์ด ์๋ก์ด Factory๋ฅผ ์ถ๊ฐ ๊ฐ๋ฅ
- ๊ฐ์ฒด์ ์์ฑ์ ๋ด๋นํ๋ ํด๋์ค๋ฅผ ํ ๊ณณ์์ ๊ด๋ฆฌํ์ฌ ๊ฒฐํฉ๋๋ฅผ ์ค์ด๊ธฐ ์ํ์ฌ ํฉํ ๋ฆฌ ํจํด์ด ๋ฑ์ฅ
- ๊ฒฐํฉ๋: ํ ํด๋์ค์ ๋ณ๊ฒฝ์ ์ด ์ผ๋ง๋ ๋ค๋ฅธ ํด๋์ค์ ์ํฅ์ ์ฃผ๋๊ฐ๋ฅผ ์๋ฏธ
ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์ฅ์
- ๊ฐ์ฒด ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ ์ ์์
- ๋จ์ผ ์ฑ ์ ์์น์ ๋ฐ๋ฆ
- ํ๋ก๊ทธ๋จ์ ์ฝ๋์์ ์์ฑ์ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ์ฝ๋๋ฅผ ๋์ฑ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค ์ ์์
- ๊ฐ๋ฐฉ ํ์ ์์น์ ๋ฐ๋ฆ
- ๊ธฐ์กด client์ ์ฝ๋๋ฅผ ํ๊ดดํ์ง ์๊ณ ์๋ก์ด ํ์ ์ ์ถ๊ฐํ ์ ์์
ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ๋จ์
- ํจํด์ ๊ตฌํํ ๋ง์ ์๋ธ ํด๋์ค๋ฅผ ๋์ ํฉ์ผ๋ก์จ ์ฝ๋๊ฐ ๋ณต์ก ํด ์ง ์ ์์
์ถ์ ํฉํ ๋ฆฌ ํจํด(Abstract Factory Pattern)
- ์ฐ๊ด๋ ๊ฐ์ฒด๋ค์ ์์ฑ์ ํ๋์ ํฉํ ๋ฆฌ์์ ๋ด๋น
- ํฉํ ๋ฆฌ๋ฅผ ๋ง๋๋ ์์ ํฉํ ๋ฆฌ(super-factory) ํด๋์ค๊ฐ ์กด์ฌ
์ถ์ ํฉํ ๋ฆฌ ํจํด ์ฅ์
- Factory๋ก๋ถํฐ ๋ง๋ค์ด์ง ๊ฐ ๊ฐ์ฒด๋ค์ด ์๋ก compatible ํจ์ ๋ณด์ฅํ ์ ์์
- ๊ฐ์ฒด ๊ฐ์ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ ์ ์์
- ๋จ์ผ ์ฑ ์ ์์น์ ๋ฐ๋ฆ
- ํ๋ก๊ทธ๋จ์ ์ฝ๋์์ ์์ฑ์ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ์ฝ๋๋ฅผ ๋์ฑ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค ์ ์์
- ๊ฐ๋ฐฉ ํ์ ์์น์ ๋ฐ๋ฆ
- ๊ธฐ์กด client์ ์ฝ๋๋ฅผ ํ๊ดดํ์ง ์๊ณ ์๋ก์ด ํ์ ์ ์ถ๊ฐํ ์ ์์
์ถ์ ํฉํ ๋ฆฌ ํจํด ๋จ์
- ํจํด์ ๊ตฌํํ ๋ง์ ์๋ธ ํด๋์ค๋ฅผ ๋์ ํฉ์ผ๋ก์จ ์ฝ๋๊ฐ ๋ณต์ก ํด ์ง ์ ์์
๋ฐ์ํ
'๐ Computer Science > Design Pattern' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋์์ธ ํจํด] ์ฑ๊ธํค ํจํด (Singleton Pattern) (0) | 2023.03.16 |
---|