▪inline Method 즉시 처리하는 메소드
Problem java
메소드 몸체가 메소드의 이름 만큼이나 명확할 때 사용한다.
class PizzaDelivery { //... int getRating() { return moreThanFiveLateDeliveries() ? 2 : 1; } boolean moreThanFiveLateDeliveries() { return numberOfLateDeliveries > 5; } } |
Solution
해당 본문을메소드를 호출하는 호출자안으로 옮기고 메소드를 삭제한다.
int getRating() { return (_numberOfLateDeliveries > 5) ? 2 : 1; } |
인디렉션이 도움이 되기는 하지만, 필요 없는 인디렉션은 짜증나게 한다.
또한, Inline Method는 메소드가 잘못 나누어져 있을 때에도 사용할 수 있다.
잘못 나뉜 두 메소드를 하나로 합쳐 큰 메소드로 만들고, 메소드를 다시 추출한다
메서드는 단순히 다른 메서드에 위임한다.
이 위임 자체는 문제가되지 않는다.
그러나 그러한 많은 방법이있을 때, 그들은 뒤죽박죽으로 뒤섞이는 혼란이 있다.
종종 메서드는 원래 너무 짧지 만 프로그램을 변경하면 그렇게 된다.
따라서 사용 수명이 지났던 메소드를 제거한다.
절차
메소드가 다형성이 없는지 확인한다.
메소드를 호출하는 부분을 찾는다.
그 메소드를 메소드의 몸체로 수정한다.
컴파일 및 테스트 후 기존 메소드를 제거한다.
Benefits
필요하지 않는 메소드의 수를 최소화함으로써 코드를 더 간단하게 할 수 있다.
How to Refactor 리팩토링 하는 방법
1. 메소드가 서브 클래스에서 재정의되지 않았는지 확인하십시오. 메서드가 재정의 된 경우이 기술을 사용하지 마십시오.
메서드에 대한 모든 호출을 찾습니다. 이러한 호출을 메서드의 내용으로 바꿉니다.
3. 메소드를 삭제하십시오.
'컴퓨터 > 이론 및 tools 사용' 카테고리의 다른 글
[리팩토링 refactoring] Simplifying Conditional Expressions 조건문의 간결화 - Consolidate Duplicate Conditional fragments 조건문의 공통 실행 코드 빼내기 (0) | 2016.11.24 |
---|---|
[리팩토링 refactoring ] Organizing Data 데이터 체계화 - Encapsulate Collection 컬렉션 캡슐화 (0) | 2016.11.24 |
[리팩토링 refactoring] Moving Features between Objects 객체간의 기능이동 - Introduce Local Extension 국소적 상속확장 클래스 사용 (0) | 2016.11.24 |
리팩토링 refactoring (0) | 2016.11.24 |
데이터마이닝 weka - IBK (KNN K-Nearest Neighbor) (0) | 2016.11.04 |
데이터 마이닝 weka - K-means k-평균 (0) | 2016.11.04 |
데이터 마이닝 WEKA - LibSVM(Support Vector Machine) (0) | 2016.11.04 |