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
    }

});