Strategy Pattern
Last updated
Was this helpful?
Last updated
Was this helpful?
์ ๋ต ํจํด์ ์์ ์ ๊ธฐ๋ฅ ๋งฅ๋ฝ(context)์์ ํ์์ ๋ฐ๋ผ ๋ณ๊ฒฝ์ด ํ์ํ ์๊ณ ๋ฆฌ์ฆ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ํต์งธ๋ก ์ธ๋ถ์ ๋ถ๋ฆฌ์ํค๊ณ , ์ด๋ฅผ ๊ตฌํํ ๊ตฌ์ฒด์ ์ธ ์๊ณ ๋ฆฌ์ฆ ํด๋์ค๋ฅผ ํ์์ ๋ฐ๋ผ ๋ฐ๊ฟ์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ๋์์ธ ํจํด์ด๋ค. ๋์ฒด ๊ฐ๋ฅํ ์ ๋ต์ด๋ผ๊ณ ๋ณด๊ธฐ๋๋ฌธ์ ์ ๋ต ํจํด์ด๋ผ ๋ถ๋ฆฐ๋ค.
์ฌ๊ธฐ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ ๋ ๋ฆฝ์ ์ธ ์ฑ ์์ผ๋ก ๋ถ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ ์๋ฏธํ๋ค.
์ฆ, ํ๋ก์ ํธ์์ ๋ณ๊ฒฝ์ด ์ผ์ด๋์ง ์๋ ๋ถ๋ถ์์ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋ ๋ถ๋ถ์ ์ฐพ์ ๋ฐ๋ก ์บก์ํ ํ๋ค๊ณ ๋ณด๋ฉด๋๋ค.
UserDao๋ ์ ๋ต ํจํด์ Context์ ํด๋นํ๋ค. Context๋ ์์ ์ ๊ธฐ๋ฅ์ ์ํํ๋๋ฐ ํ์ํ ๊ธฐ๋ฅ์ค์์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ DB์ฐ๊ฒฐ ์๊ณ ๋ฆฌ์ฆ์ ConnectionMaker ์ธํฐํ์ด์ค๋ก ๋ถ๋ฆฌํ์ฌ ์ ์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๊ตฌํํ ํด๋์ค์์ ์ ๋ต์ ๋ฐ๊ฟ๊ฐ๋ฉด์ ์ฌ์ฉํ ์ ์๋๋ก ๋ถ๋ฆฌํ๋ค.
Context(UserDao)๋ฅผ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ(UserDaoTest)๋ Context๊ฐ ์ฌ์ฉํ ์ ๋ต(DConnectionMaker)์ Context์ ์์ฑ์๋ฅผ ํตํด ์ ๊ณตํด์ฃผ๋ฉฐ ์ ๋ตํจํด์ ์ ์งํค๊ณ ์๋ ์์์ด๋ค.
์ฌ๊ธฐ์ ๋ณด๋ฉด UserDao๋ ๊ฐ๋ฐฉ ํ์ ์์น(OPC) ์ ์ ๋ฐ๋ฅด๊ณ ์์ผ๋ฉฐ, ๊ฒฐํฉ๋๋ ๋ฎ์ผ๋ฉฐ, ์ ๋ตํจํด์ ์ ์ฉํ ๊ฒ์ ํ์ธํ ์ ์๋ค.
ํ ๋น์ ์คํ๋ง 1์ฅ