Abstract Factory Pattern
Abstract Factory Pattern (์ถ์ ํฉํ ๋ฆฌ ํจํด)

ํด๋น ํจํด์ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด๊ณผ ํจ๊ป ๋ณด๋ ๊ฒ์ด ์ข๋ค.
ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์ด์ฉํ๋ฉด ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ฑ ์์ ๋ถ๋ฆฌํ์ฌ ์๋ก์ด ์๋ธํ์ ์ด ์ถ๊ฐ๋์ด๋ ํฉํ ๋ฆฌ ํด๋์ค๋ง ์์ ๋ ๋ฟ ํฉํ ๋ฆฌ ๊ฐ์ฒด๋ฅผ ์ด์ฉํ๋ ํด๋์ค๋ ์์ ๋์ง ์๋๋ค.
์ถ์ ํฉํ ๋ฆฌ ํจํด์ ํฉํ ๋ฆฌ ๋ฉ์๋์์์ Product๊ฐ ์ฌ๋ฌ ๊ตฌ์ฑ์์๋ก ์ด๋ฃจ์ด์ง ๋, ์ด ๊ตฌ์ฑ ์์๋ค์ ์กฐํฉ์ฒด๋ฅผ ๋ง๋๋ ํฉํ ๋ฆฌ๋ฅผ ์ ์ํ๋ ๊ฒ์ด๋ค.
๊ตฌ์ฑ ์์
AbstractFactory
- Product๋ฅผ ์์ฑํ๊ธฐ ์ํ ํด๋์ค๋ฅผ ์ถ์ํํ ๊ฒ. ๊ธฐ์กด์ Product์ ์๋ธํ์ ์ ์์ฑํ๋ ๊ฐ์ฒด(Client)๊ฐ ์ด์ ์์กดํ๊ฒ ๋์ด ๊ตฌ์ฒด์ ์ธ ๊ฒ์ด ์๋ ์ถ์์ ์ธ ๊ฒ์ ์์กดํ๋๋ก ์ค๊ณ๋ฅผ ๋ณ๊ฒฝํ๋ค.ConcreteFactory
- ๊ฐ (ํด๋ผ์ด์ธํธ๊ฐ ์๊ตฌํ๋) ์์ฑ๋ฌผ ๋ด ๋ถํ๋ค์ ๋ง๋ค๊ณ ์กฐํฉํ๊ธฐ ์ํ ํฉํ ๋ฆฌAbstractProduct
- ๊ฐ ์์ฑ๋ฌผ ๋ด ๋ถํ๋คProduct
- ๊ฐ ๋ถํ๋ค์ ์๋ธํ์
ํน์ง
์ฌ์ค์ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ํ ๋ฒ ๋ ์บก์ํํ๋ ๊ณผ์ ์ ๊ฐ๊น๋ค.
๊ฐ ํฉํ ๋ฆฌ์ ์ธ์คํด์ค๋ ํ๋์ฉ๋ง ์์ฑํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ฑ๊ธํค๊ณผ ํจ๊ป ์ฐ์ผ ๋๊ฐ ๋ง๋ค.
ํฉํ ๋ฆฌ ๋ฉ์๋์ ์ถ์ ํฉํ ๋ฆฌ
์ผ์ฑ, LG ์ปดํจํฐ๋ฅผ ์ ์กฐ, ํ๋งคํ๋ ์ปดํจํฐ ์ ์กฐ ์ ์ฒด์์ ํฉํ ๋ฆฌ ๋ฉ์๋, ์ถ์ ํฉํ ๋ฆฌ ํจํด์ ์ ์ฉํ๋ค๊ณ ํ์.
๊ทธ๋ ๋ค๋ฉด ์ด๋ค ํ์ฌ ์ปดํจํฐ์ ์ฃผ๋ฌธ์ด ๋ค์ด์๋์ ๋ฐ๋ผ ๋ถ๊ธฐ๋ฅผ ๋๋์ด ์ผ์ฑ ๋๋ LG ์ปดํจํฐ์ ์ธ์คํด์ค๋ฅผ ์์ฑํด์ผ ํ๋ค. ์ฌ๊ธฐ์ ๊ด๋ จ์ด ์๋ ๊ฐ์ฒด๊ฐ ์ปดํจํฐ ์๋ธํ์
์ ์ถ๊ฐ/์ ๊ฑฐ์ ์ํฅ์ ๋ฐ์ง ์๊ธฐ ์ํด ์ธ์คํด์ค ์์ฑ ๋ฐ ๋ฐํ ์ฑ
์์ ๋ถ๋ฆฌํ๋ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด
์ด ์ ์ฉ๋ ์ ์๋ค.
๋ํ, ์ปดํจํฐ์๋ ๋ชจ๋ํฐ, ํค๋ณด๋, ๋ง์ฐ์ค์ ๊ฐ์ ๋ถํ์ด ํฌํจ๋์ด์ผ ํ๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ ๋ถํ ์์์ ๋ํด ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์ด์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋ชจ๋ํฐ ํฉํ ๋ฆฌ, ํค๋ณด๋ ํฉํ ๋ฆฌ, ๋ง์ฐ์ค ํฉํ ๋ฆฌ๋ฅผ ์์ฑํด์ผ ํ๋ค.
๊ทธ๋ฌ๋ ์ฌ์ค ์ปดํจํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ถํ์ ์ ๊ธฐ์ ๋์ด ์๋๋ค. ์๋ง์ ๋ถํ์ ๋ํด ๋ชจ๋ ํฉํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ฒ ๋๋ฉด ์ด๋ ์ฝ๋๋ฅผ ๋ณต์กํ๊ฒ ๋ง๋ค๊ณ , ํฉํ ๋ฆฌ ํด๋์ค์ ๋น๋ฒํ ์์ ์ ์ผ๊ธฐํ๋ค.
์ฌ๊ธฐ์ ์ถ์ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์ ์ฉํ์ฌ ์ผ์ฑ ์ปดํจํฐ์ ๋ถํ์ ์์ฑ, ์กฐ๋ฆฝํ๋ ํฉํ ๋ฆฌ์ LG ์ปดํจํฐ์ ๋ถํ์ ์์ฑ, ์กฐ๋ฆฝํ๋ ํฉํ ๋ฆฌ๋ฅผ ๋ง๋ ๋ค ์ฌ๊ธฐ์ ๋ถํ์ ์์ฑํ๊ณ ์กฐ๋ฆฝํ๋ค.
์ต์ข ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ ๋ค์๊ณผ ๊ฐ์ด ํ์ฑ๋๋ค.

Last updated