Diferença entre KeyBindings e KeyListeners

Qual é o ponto de KeyBindings se você pudesse fazer apenas:

// Imports

public void Test {
    JButton button1;
    JButton button2;
    JButton button3;
    ...

    Test() {
        button1 = new JButton();
        button1.addKeyListener(this);

        button2 = new JButton();
        button2.addKeyListener(this);

        button3 = new JButton();
        button3.addKeyListener(this);

        ...
    }

    public void keyPressed(KeyEvent e) {
    }

    public void keyReleased(KeyEvent e) {
    }

    public void keyTyped(KeyEvent e) {

        Object src = e.getSource();

        if (src == button1) {
            ...
        }

        else if (src == button2) {
            ...
        }

        else if (src == button3) {
            ...
        }
        ...
    }
}

Vamos dizer que eu tenhodez botões. Então, se você usar KeyBindings, você teria que fazer um keybinding separado para cada botão. Não é o exemplo que mostrei mais eficiente? Por que não?

questionAnswers(1)

yourAnswerToTheQuestion