๐ฅDI(Dependency Injection )
์ ์
์์กด ๊ด๊ณ ์ฃผ์ ์ด๋ฉฐ, ์์กด ๊ด๊ณ๋ A๊ฐ B๋ฅผ ์์กดํ๋ค ์ด๋ฉฐ ํด๋น ์ด ์ถ์์ ์ธ ํํ์ ํ ๋น์ ์คํ๋ง์์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ๋ค.
์ฆ B์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ ๋๋ ๋ณ๊ฒฝ๋๊ฑฐ๋ ํ์์ด ๋ฐ๋๋ฉด ๊ทธ ์ํฅ์ด A์ ๋ฏธ์น๋ค.
์ด๋ฌํ ๊ฐ์ฒด ์งํฅ ์ค๊ณ ๊ด์ ์์ ๊ฐํ๊ฒฐํฉ ๋๋ฌธ์ OCP๋ฅผ ์๋ฐํ๊ฒ ๋๋๋ฐ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด
interface๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐํฉ์ ๋์จํ๊ฒ ํ์ด์ค ์ ์๋ค.
์ ์ฌ์ง์ ๋ณด๋ฉด MovieLister๋ Movie Finder๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์์ผ๋ฉฐ
ํด๋น ๊ตฌํ๋ถ MovifinderImpl์์ ์คํํ ๊ตฌํ์ฒด๋ฅผ ์ ์ํ์ฌ, ๊ตฌํ๋ถ๋ฅผ MovieLister๊ฐ ๋ชฐ๋ผ๋ ๋๋ฉฐ ๊ตฌํ๋ถ๊ฐ ๋ค๋ฅธ๊ฑธ๋ก ๋ฐ๋์ด๋ movieLister๋ OCP์์น์ ์งํฌ ์ ์๋ค๋ผ๋ ๊ฒ์ด๋ค.
์๋น์ค ๋ก์ผ์ดํฐ
๊ทธ๋ผ, MovieFinder๋ฅผ ์์๋ฐ์ ๊ฐ์ฒด ์ฆ ๊ตฌํ๋ถ๊ฐ ์ฌ๋ฌ๊ฐ๋ผ๊ณ ํ๋ค๋ฉด ์ด๋คํํ๋ก movie Lister๊ฐ ์ ์ ์์๊น?

์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๊ฒ ์ง๋ง, ๋ณดํธ์ ์ผ๋ก Singleton์ผ๋ก ๋ฑ๋กํด์ฃผ๊ณ ๋ฐํ์ ๋, ๊ตฌํ๋ถ๋ฅผ ํ๋ ์์ฑํ ๋ค.
๋ถ๋ฌ์ค๋ ํํ๋ค
Last updated
