앞에서 잠시 언급했듯이 다중상속이 허용되지 않는 자바에선 위와 같은 방법은 별로 좋지 못하다.
그래서 우선 Connection 를 주는 클래스를 아예 따로 떼어버리자.
그럼 상속받을 필요도 없고 그냥 생성해서 쓰면 그만이다. abstact일 필요도 없어진다.
자세한 코드는 다음과 같다.
Connection만 관리하는 클래스 추출
public class SimpleConnectionMaker {
public Connection makeNewConnection() throws ClassNotFoundException,SQLException{
return 만들어질 커넥션;
}
}
그럼 add와 get 메소드 안에서는
Connection c = simpleConnectionMaker.makeNewConnection();
이 한줄로 간단히 예전과 똑같이 사용할 수 있다.
하지만..
이렇게 바뀌고 나면 제공해주고 있는 D사와 N사에서 작동안된다고 클레임 건다.
이유는 더이상 상속관계가 아니기 때문에 상속을 받아도 Connection 객체를 사용할 수 없다는 것이다.
그래서 "인터페이스의 도입"이 이루어진다.
'스프링프레임워크공부중 > 1부 초난감DAO 리팩토링' 카테고리의 다른 글
초난감DAO 리팩토링 3_3단게 ****관계설정 책임의 분리**** (0) | 2010.12.16 |
---|---|
초난감DAO 리팩토링 3_2단게 ****인터페이스의 도입**** (0) | 2010.12.16 |
초난감DAO 리팩토링 2단계 ****DB 커넥션 만들기의 독립**** (0) | 2010.12.16 |
초난감DAO 리팩토링 1단계 ****커넥션 만들기의 추출**** (0) | 2010.12.16 |
리팩토리 과정 준비단계 (0) | 2010.12.16 |