-
리팩토링 : Convert Static to Dynamic Construction리팩토링 2012. 12. 6. 09:00
리팩토링 책에는 없고 웹사이트에 있는 내용
저자 : Gerard M. Davison
조건 :
특정 플랫폼에서만 빌드가능한 클래스가 정적컴파일해야하는 의존성이 있을 때
적용 :
정적 의존성을 해제하기 위해서 java.lang.reflect를 사용하도록 수정할 것.
적용 전
import org.davison.data.jdbc.JDBCProvider; . . . DataProvider dp = new JDBCProvider();
적용 후
try { DataProvider dp = (DataProvider) Class.forName("org.davison.data.jdbc.JDBCProvider").newInstance(); } catch (IllegalAccessException iae) { // Convert exception to error to preseve the interface. // throw new IllegalAccessError(iae.getMessage()); } catch (InstantiationException ie) { // Convert exception to error to preseve the interface. // throw new InstantiationError(ie.getMessage()); } catch (ClassNotFoundException cnfe) { // Convert exception to error to preseve the interface. // throw new NoClassDefFoundError(cnfe.getMessage()); }
참조 :
http://www.refactoring.com/catalog/convertStaticToDynamicConstruction.html
'리팩토링' 카테고리의 다른 글
리팩토링 : Duplicate Observed Data (0) 2012.12.08 리팩토링 : Decompose Conditional (0) 2012.12.07 리팩토링 : Convert Dynamic to Static Construction (0) 2012.12.05 리팩토링 : Consolidate Duplicate Conditional Fragments (0) 2012.12.04 리팩토링 : Consolidate Conditional Expression (0) 2012.12.03 댓글