Интерфейс обратного вызова

Почему в конструкторе Button мы вводим новую переменную action интерфейса, вместо того, чтоб просто писать Button (EventHandler handler) ? Встречаю много где.

public class EventsApp {
 
    public static void main(String[] args) {
         
        Button button = new Button(new ButtonClickHandler());
        button.click();
        button.click();
        button.click();
    }
}
 
class ButtonClickHandler implements EventHandler{
     
    public void execute(){
         
        System.out.println("Кнопка нажата!");
    }
}
 
interface EventHandler{
     
    void execute();
}
 
class Button{
     
    EventHandler handler;
    Button(EventHandler action){
         
        this.handler=action;
    }
    public void click(){
         
        handler.execute();
    }
}

Ответы (0 шт):