앞에서 잠시 언급했듯이 다중상속이 허용되지 않는 자바에선 위와 같은 방법은 별로 좋지 못하다.

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

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

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

Connection만 관리하는 클래스 추출

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

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

Connection c = simpleConnectionMaker.makeNewConnection();

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

하지만..

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

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

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

+ Recent posts