예제
class A {
// public void method(B b) {
public void method(I i) { // 인터페이스 I 를 구현한 넘들만 들어와라
b.method();
}
}
//class B {
// public void method() {
// System.out.println("B 클래스의 메서드");
// }
//}
interface I {
public void method();
class B implements I {
public void method() {
System.out.println("B 클래스의 메서드");
}
}
class C implements I {
public void method() {
System.out.println("C 클래스의 메서드");
}
}
class A {
public static void main(String[] args) {
A a = new A();
a.method=(New B()); // A가 B를 사용(의존)
}
}
a.method=(New B()); 이 부분만 변경하면 됨 (= 변경의 최소화)