๐ ํด๋ผ์ด์ธํธ์ธ UserDaoTest์์ ConnectionMaker ๊ตฌํ ํด๋์ค๋ฅผ ์ฌ์ฉํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์์ต๋๋ค.
ํ์ง๋ง UserDaoTest๋ UserDao์ ๊ธฐ๋ฅ์ด ์ ๋์ํ๋์ง ํ ์คํธ๋ฅผ ์ํ ํด๋์ค์ ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ UserDaoTest์ ์๋ Connection Maker ๊ตฌํ ๋ถ๋ถ์ ๋ถ๋ฆฌํด์ผํฉ๋๋ค.
๐ก ํฉํ ๋ฆฌ
๋ถ๋ฆฌ์ํฌ ๊ธฐ๋ฅ์ ๋ด๋นํ ํด๋์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด,
์ด ํด๋์ค๋ ๊ฐ์ฒด์ ์์ฑ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ๊ณ ๊ทธ๋ ๊ฒ ๋ง๋ค์ด์ง ์ค๋ธ์ ํธ๋ฅผ ๋๋ ค์ฃผ๋ ๊ฒ์ธ๋ฐ,
์ด ํด๋์ค๋ฅผ ํฉํ ๋ฆฌ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์ฃผ์ํด์ผํ ์ ์ ์ถ์ ํฉํ ๋ฆฌ ํจํด์ด๋ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด๊ณผ๋ ๋ค๋ฅด๋ค๋ ๊ฒ์ ์ธ์งํด์ผํฉ๋๋ค.
์ด์ ํฉํ ๋ฆฌ ํด๋์ค์ ์ญํ ์ ํ๋ DaoFactory ํด๋์ค๋ฅผ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
DaoFactory ํด๋์ค
public class DaoFactory {
public UserDao userDao(){
ConnectionMaker connectionMaker = new NConnectionMaker();
UserDao userDao = new UserDao(connectionMaker);
return userDao
}
}
์ด๋ ๊ฒ ๊ฐ๊ฐ์ด ์์ ์ ์ฑ ์์๋ง ์ถฉ์คํ๋๋ก ์ญํ ์ ๋ฐ๋ผ ๋ถ๋ฆฌํ๋ ์์ ์ ํ์์ผ๋ฉฐ,
DaoFactory์ ์์ค๋ง ๊ณต๊ฐํ๊ณ UserDao์ ์์ค๋ ์์ ํ๊ฒ ๋ณด์กด ํ ์ ์์ต๋๋ค.
UserDaoTest์์๋ DaoFactory ์์ userDao๋ง ๋ถ๋ฌ์ฃผ๋ฉด ๋ฉ๋๋ค.
public class UserDaoTest {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
UserDao dao = new DaoFactory().userDao();
//...์๋ต
}
}
UserDao, ConnectionMaker : ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ฌ์ ์ธ ๋ฐ์ดํฐ ๋ก์ง๊ณผ ๊ธฐ์ ๋ก์ง์ ๋ด๋น
DaoFactory : ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋ธ์ ํธ๋ค์ ๊ตฌ์ฑํ๊ณ ๊ทธ ๊ด๊ณ๋ฅผ ์ ์ํ๋ ์ฑ ์์ ๋ด๋น
๐งพ ์ ๋ฆฌ
UserDao์ DaoFactory์ ์ ์ด์ ์ญ์ ์ด ์ ์ฉ๋์ด ์์ต๋๋ค.
๐ก ์ ์ด์ ์ญ์ ์ด๋?
์ฐธ๊ณ : https://withseungryu.tistory.com/61?category=880574
์๋ ConnectionMaker์ ๊ตฌํ ํด๋์ค๋ฅผ ๊ฒฐ์ ํ๊ณ ์ค๋ธ์ ํธ๋ฅผ ๋ง๋๋ ์ ์ด๊ถ์ UserDao์๊ฒ ์์๋๋ฐ,
DaoFactory์๊ฒ ๊ถํ์ ๋๊ฒจ์ฃผ๋ฉด์ UserDao๋ ๋ฅ๋์ ์์ ์๋์ ์ธ ์กด์ฌ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
๋ํ UserDao์ ConnectionMaker์ ๊ตฌํ์ฒด๋ฅผ ์์ฑํ๋ ์ฑ ์๋ DaoFactory๊ฐ ๋งก๊ณ ์์ต๋๋ค.
์ฆ, DaoFactory๋ฅผ ๋์ ํ๋ ๊ณผ์ ์ด ๋ฐ๋ก IoC๋ฅผ ์ ์ฉํ๋ ์์ ์ด์๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
์ด๋ฌํ DaoFactory๋ ์ค๋ธ์ ํธ ์์ค์ ๊ฐ์ฅ ๋จ์ํ IoC ์ปจํ ์ด๋, IoC ํ๋ ์์ํฌ๋ผ๊ณ ๋ถ๋ฆด ์ ์์ต๋๋ค.
์ฐธ๊ณ ๋ฌธ์ :
ํ ๋น์ ์คํ๋ง3 (์ด์ผ๋ฏผ)
'Back-end > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] ์ฑ๊ธํค ๋ ์ง์คํธ๋ฆฌ (0) | 2020.08.02 |
---|---|
[Spring] ์คํ๋ง์ IoC (0) | 2020.07.31 |
[Spring] ๊ฐ์ฒด์งํฅ์ DAO - ํ์ฅ (์ ๋ต ํจํด) (0) | 2020.07.27 |
[Spring] ๊ฐ์ฒด์งํฅ์ DAO - ๋ถ๋ฆฌ (ํ ํ๋ฆฟ ๋ฉ์๋ ํจํด) (0) | 2020.07.27 |
[Spring] DAO ๊ธฐ๋ณธ ๊ตฌ์กฐ ๋ง๋ค๊ธฐ (0) | 2020.07.27 |