«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

올해는 머신러닝이다.

초난감DAO 리팩토링 3_1단게 ****클래스의 분리**** 본문

스프링프레임워크공부중/1부 초난감DAO 리팩토링

초난감DAO 리팩토링 3_1단게 ****클래스의 분리****

행복한 수지아빠 2010. 12. 16. 12:33
앞에서 잠시 언급했듯이 다중상속이 허용되지 않는 자바에선 위와 같은 방법은 별로 좋지 못하다.

그래서 우선 Connection 를 주는 클래스를 아예 따로 떼어버리자.

그럼 상속받을 필요도 없고 그냥 생성해서 쓰면 그만이다. abstact일 필요도 없어진다.

자세한 코드는 다음과 같다.

Connection만 관리하는 클래스 추출

public class SimpleConnectionMaker {
public Connection makeNewConnection() throws ClassNotFoundException,SQLException{
return 만들어질 커넥션;
}
}

그럼 add와 get 메소드 안에서는 

Connection c = simpleConnectionMaker.makeNewConnection();

이 한줄로 간단히 예전과 똑같이 사용할 수 있다.

하지만..

이렇게 바뀌고 나면 제공해주고 있는 D사와 N사에서 작동안된다고 클레임 건다.

이유는 더이상 상속관계가 아니기 때문에 상속을 받아도 Connection 객체를 사용할 수 없다는 것이다.

그래서 "인터페이스의 도입"이 이루어진다.