그럼 아예 이런식으로 독립시켜버리자.
UserDaoTest라는 클래스를 만들어서 여기안에서 실행및 테스트를 할수 있다.
UserDao의 생성자
public UserDao(ConnectionMaker connectionMaker){
//초기화 ID 및 PASSWORD
this.connectionMaker = connectionMaker;
}
public class UserDaoTest {
public static void main(String[] args) {
ConnectionMaker connectionMaker = new DConnectionMaker();
UserDao dao = new UserDao(connectionMaker);
}
이렇게 나누어 지면 거의 끝이다.
하지만 위의 코드에서 문제점은 UserDaoTest라는 클라이언트 클래스는 예전 UserDao가 맡던 connectionMaker 구현클래스 사용할지 안할지 기능까지 맡고 있는 셈이다.
원래목적이 UserDaoTest는 UserDao의 기능이 잘 동작하는 지만 테스트할려고 만든거다.
그래서 또 하나의 관심을 줌으로써 또 한번 더 리팩토링을 해야 한다.
다음 마지막 과정은 팩토리 과정이다.
UserDaoTest라는 클래스를 만들어서 여기안에서 실행및 테스트를 할수 있다.
UserDao의 생성자
public UserDao(ConnectionMaker connectionMaker){
//초기화 ID 및 PASSWORD
this.connectionMaker = connectionMaker;
}
public class UserDaoTest {
public static void main(String[] args) {
ConnectionMaker connectionMaker = new DConnectionMaker();
UserDao dao = new UserDao(connectionMaker);
}
이렇게 나누어 지면 거의 끝이다.
하지만 위의 코드에서 문제점은 UserDaoTest라는 클라이언트 클래스는 예전 UserDao가 맡던 connectionMaker 구현클래스 사용할지 안할지 기능까지 맡고 있는 셈이다.
원래목적이 UserDaoTest는 UserDao의 기능이 잘 동작하는 지만 테스트할려고 만든거다.
그래서 또 하나의 관심을 줌으로써 또 한번 더 리팩토링을 해야 한다.
다음 마지막 과정은 팩토리 과정이다.
'스프링프레임워크공부중 > 1부 초난감DAO 리팩토링' 카테고리의 다른 글
초난감DAO 리팩토링 4단게 ****팩토리 단계**** (0) | 2010.12.16 |
---|---|
초난감DAO 리팩토링 3_2단게 ****인터페이스의 도입**** (0) | 2010.12.16 |
초난감DAO 리팩토링 3_1단게 ****클래스의 분리**** (0) | 2010.12.16 |
초난감DAO 리팩토링 2단계 ****DB 커넥션 만들기의 독립**** (0) | 2010.12.16 |
초난감DAO 리팩토링 1단계 ****커넥션 만들기의 추출**** (0) | 2010.12.16 |