Итак, я хочу создать корреляцию между двумя классами, из того, что я прочитал в некоторых шаблонах проектирования, удобно использовать интерфейс (в Android Studio это используется для связывания фрагмента с действием).
Посмотрите на этот код:
Во-первых, у нас есть класс A:
public class A {
public static void main(String[] args) {
B b = new B();
b.foo();
}
}
Тогда у нас есть класс B:
class B {
private int i;
interface Drawable {
void show(int i);
}
public B() {
this.i = 5393;
drawable = new C();
}
private Drawable drawable;
public void foo() {
drawable.show(this.i);
}
}
И в конце класса C:
class C implements B.Drawable {
@Override
public void show(int i) {
System.out.println("I'm showing this method, and i = " + i);
}
}
То, что я обертываю вокруг себя, это строка:
drawable = new C();
Может ли кто-нибудь объяснить мне, как мы назначаем новый объект из класса C интерфейсу, я знаю, что это связано с тем, что класс C реализует этот интерфейс, но мне сложно все это получить. Общий вид этой операции для меня довольно суровый.
В Android мы назначаем этот интерфейс для Activity (недавний патч изменил его на контекст, который является экземпляром Activity).