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
}
});