-
리팩토링 : Convert Dynamic to Static Construction리팩토링 2012. 12. 5. 09:00
리팩토링 책에는 없는 내용. 리팩토링웹사이트에 있음.
저자 : Gerard M. Davison
조건 :
다른 클래스들을 동적으로 로드하는 코드는 보장되지 않은 오버헤드를 발생시키거나 문제발생가능성이 큰 코드를 만들수 있음.
적용 :
동적 클래스 로딩을 정적코드로 변환할 것.
적용전
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()); }
적용후
import org.davison.data.jdbc.JDBCProvider; . . . DataProvider dp = new JDBCProvider();
참조
http://www.refactoring.com/catalog/convertDynamicToStaticConstruction.html
'리팩토링' 카테고리의 다른 글
리팩토링 : Decompose Conditional (0) 2012.12.07 리팩토링 : Convert Static to Dynamic Construction (0) 2012.12.06 리팩토링 : Consolidate Duplicate Conditional Fragments (0) 2012.12.04 리팩토링 : Consolidate Conditional Expression (0) 2012.12.03 리팩토링 : Collapse Hierarchy (0) 2012.12.02 댓글