자바의 정석 기초 (인터페이스의 장점)
남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다.
인터페이스의 장점
- 두 대상(객체) 간의 '연결, 대화, 소통' 을 돕는 '중간 역할'을 한다.
- 선언(설계)과 구현을 분리시킬 수 있게 해준다.
- 개발 시간을 단축할 수 있다.
- 변경에 유리한 유연한 설계가 가능하다.
- 표준화가 가능하다.
- 서로 관계없는 클래스들을 관계를 맺어 줄 수 있다.
직접적인 관계의 두 클래스 (A - B)
class A {
public void methodA (B b){
b.methodB();
}
}
class B {
public void methodB(){
System.out.println("methodB()");
}
}
class InterfaceTest{
public static void main(String args[]){
A a = new A();
a.methodB(new B());
}
}
간접적인 관계의 두 클래스 (A - I - B)
class A {
public void method(I i){ // I를 사용
i.method();
}
}
interface I (void methodB();} // 껍데기
class B implements I { // 알맹이
public void methodB(){
System.out.println("method()");
}
}
class C implements I {
public void methodB(){
System.out.println("methodB() in C");
}
}