Java 示例

可以在 SWT MouseListenerMouseAdapter 类中找到适配器模式的一个很好的现有示例。

MouseListener 接口如下所示:

public interface MouseListener extends SWTEventListener {
    public void mouseDoubleClick(MouseEvent e);
    public void mouseDown(MouseEvent e);
    public void mouseUp(MouseEvent e);
}

现在假设你正在构建 UI 并添加这些侦听器的场景,但大多数情况下,除了单击某些内容(mouseUp)之外,你不关心任何其他内容。你不希望不断创建空实现:

obj.addMouseListener(new MouseListener() {

    @Override
    public void mouseDoubleClick(MouseEvent e) {
    }

    @Override
    public void mouseDown(MouseEvent e) {
    }

    @Override
    public void mouseUp(MouseEvent e) {
        // Do the things
    }

});

相反,我们可以使用 MouseAdapter:

public abstract class MouseAdapter implements MouseListener {
    public void mouseDoubleClick(MouseEvent e) { }
    public void mouseDown(MouseEvent e) { }
    public void mouseUp(MouseEvent e) { }
}

通过提供空的默认实现,我们可以自由地仅覆盖我们从适配器关注的那些方法。从上面的例子开始:

obj.addMouseListener(new MouseAdapter() {

    @Override
    public void mouseUp(MouseEvent e) {
        // Do the things
    }

});