소프트웨어 개발/Java - Basic
DriverManager쓰는과정
늘근이
2014. 10. 20. 13:27
package first; public class ReflectTest03 { public static void main(String[] args) throws Exception{ Class.forName("first.Child03"); Parent03 p = DManager.get(); p.exec(); Class.forName("oracle.Driver.") } } // A가 제공 interface Parent03{ public void exec(); } // A가 제공 class DManager{ private static Parent03 instance; public static void setInstance(String className) throws RuntimeException{ try{ Class clazz = Class.forName(className); Object obj = clazz.newInstance(); DManager.instance = (Parent03)obj; }catch(Exception ex){ throw new RuntimeException(ex); } } public static Parent03 get(){ return instance; } } // B가 제공 class Child03 implements Parent03{ static{ DManager.setInstance("first.Child03"); } public void exec(){ System.out.println("Child03.exec"); } }즉, 이러한식으로 구현이 안에서 되는것이다
근데 static은 동시성의 문제가 생길수도 있다. 따라서 개선된 방법을 쓰는것이다.