Java 示例
可以在 SWT MouseListener 和 MouseAdapter 類中找到介面卡模式的一個很好的現有示例。
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
}
});