В качестве альтернативы методу Java 8 default
вы можете взглянуть на классы Adapter, используемые в слушателях Swing.Это подкласс, который обеспечивает пустое тело для всех методов интерфейса.Это позволяет различать случаи, когда вы хотите получить четкое определение всех тел методов, а случай, когда вы не хотите иметь поведение для всех них.
Например:
interface MyCallback {
void callback1();
void callback2();
void callback3();
}
И класс адаптера:
public class MyAdapter implements MyCallback {
public void callback1(){}
public void callback2(){}
public void callback3(){}
}
Теперь клиентские классы могут использовать интерфейс или класс адаптера для реализации обратного вызова:
MyCallBack callback = new MyAdapter(){
public void callback2(){
// I implement it only
}
}
Или:
MyCallBack callback = new MyCallBack(){
// I have to implement all
public void callback1(){
// ...
}
public void callback2(){
// ...
}
public void callback3(){
// ...
}
}