|
이 섹션은 Use Interface Where
Possible 리팩토링에 대해 당신에게 포괄적인 overview와 how
이 리팩토링 기능이 IntelliJ IDEA에서 사용될 수 있는가를 제공합니다.
Use Interface Where Possible 리팩토링 기능은 사용자에게 베이스 클래스/인터페이스부터 조상 클래스 또는 같은 인터페이스를 구현하는 내부 클래스의 인스턴스로 파생한 정의 메소드의 실행을 위임하는 것을 허락합니다.
예를 들면, 당신은 다음 클래스를 가집니다:
public class ClassParent {
void method1(){
//some code here
}
void method2(){
//some code here
}
}
public class ClassChild extends ClassParent
{
void method1() {
super.method1();
}
void method2() {
super.method2();
}
}
public class UsageClass {
void myMethod(){
ClassChild classChild = new ClassChild();
classChild.method1();
classChild.method2();
}
}
ClassChild에서 리팩토링을 적용하십시오. UsageClass 는 다음과 같이 변경될 것입니다:
public class UsageClass {
void myMethod(){
ClassParent classChild = new ClassChild();
classChild.method1();
classChild.method2();
}
}
가능하면 인터페이스 또는 슈퍼클래스를 사용하기 위해서:
1. 에디터 또는 메소드가 부모 클래스 또는 인터페이스로 위임된 보기 ( Project, Commander ) 중의 하나에서 클래스 위의 캐럿을 설정하고 메인 메뉴, 또는 오른쪽 버튼을 클릭하여 불려지는 팝업 메뉴에서 Refactor |
Use Interface Where Possible를 클릭하십시오.
2. 당신은 Use
Interface Where Possible 다이얼로그를 볼 것입니다.

|
Change Usages of <your_package_name>.<your_class_name>
to
|
|
당신이 사용할 필요가 있는 가용한 부모 클래스/인터페이스의 목록으로부터의 선택하십시오.
|
|
Use interface/superclass in instanceof
|
|
만일 선택되면, IDEA는 선택된 슈퍼클래스/인터페이스를 위한 instanceof 스테이트먼트의 존재를 위해 확인할 것이고, 만일 무언가 발견되면 그것을 변경할 것입니다.
예를 들면, 당신은 ParentInterface 가 태그 인터페이스인 다음의 코드(위의 예제에 기초하여)를 가집니다:
public interface BaseInterface {
void myMethod();
}
public interface ParentInterface extends BaseInterface {
//some code here
}
public class ClassChild implements ParentInterface
{
public void myMethod(){
//some code here
}
}
public class UsageClass {
void myMethod(){
ClassChild child = new ClassChild();
child.myMethod();
if(child instanceof ParentInterface) {
//some code here
}
}
}
그리고 리팩토링 프로세스가 ParentInterface 에 적용되고 난 후에 UsageClass 는 다음과 같이 볼 것입니다:
public class UsageClass {
void myMethod(){
ClassChild child = new ClassChild();
child.myMethod();
if(child instanceof BaseInterface) {
//some code here
}
}
}
|
|
변경된 미리 보기 사용
|
|
이 체크 박스를 선택하면 당신에게 사용이 발견된 것의 정보를 계속 얻는 것을 허락하고, 당신에게 그들의 교체를 승인하는 것을 허락합니다.
이 체크 박스가 선택되지 않을 때, IDEA는 교체 기능를 자동적으로 수행합니다.
|

|
심지어 체크 박스가 확인되지 않았을 때도, 만일 발견된 사용이 어떤 읽기 전용 파일에서 존재하면 당신에게 사용 교체를 확인하기 위해 프롬프트 될 것입니다.
|
Refactoring Preview 다이얼로그(만일 그것이 나타나면)에서, 당신은 수행된 변경을 분석할 수 있습니다.
리팩토링과 함께 진행하기 위해서, Do
Refactor 클릭하십시오, 그렇지 않다면 Cancel 을 클릭하십시오. 더욱 상세한 것은 Refactoring
Preview를 보십시오.
|
|
그리고 만일 어떤 클래스/인터페이스 사용도 부모 클래스/인터페이스로 교체될 수 없으면, 당신에게 다음의 메시지가 프롬프트 될 것입니다:

|