深入理解适配器模式:Java中的接口适配实践

本文详细介绍了适配器模式在Java编程中的应用,通过MouseListener和自定义RecordListener示例展示如何通过适配器类简化接口实现,避免强制实现所有方法,提升代码灵活性和开发效率。

实现适配器

通常,在实现一个接口时,你需要实现该接口中存在的所有方法。一个很好的例子是Java Swing中的MouseListener。当你需要实现多个方法,而通常可能只捕获其中一个时,你会发现也提供了一个Mouse Adapter。我们中有些人经常使用它。这就是适配器模式的一部分。它有时让我的生活更轻松。

适配器是一种结构模式,让你适应不同的环境。不同环境之间的连接称为适配器。因此,基本上,当你的程序成为客户端时,它为其他人提供他们期望的接口,反之亦然。

例如,以下类期望实现类应该实现所有三个方法。

1
2
3
4
5
public interface RecordListener {
    public void eventPrePerformed(RecordEvent recordEvent);
    public void eventPerformed(RecordEvent recordEvent);
    public void eventPostPerformed(RecordEvent recordEvent);
}

所以,假设我们的实现类是一个粗鲁的类,只想实现一个方法。作为API设计师,你该怎么做?嗯…

这就是我们介入适配器的地方。

1
2
3
4
5
6
7
8
9
public abstract class RecordAdapter implements RecordListener {
    public void eventPrePerformed(RecordEvent recordEvent) {}
    public void eventPerformed(RecordEvent recordEvent) {}
    public void eventPostPerformed(RecordEvent recordEvent) {}
}

public MyAdapterImpl extends RecordAdapter {
    public void eventPerformed(RecordEvent recordEvent){}
}

现在唯一剩下的事情就是使用适配器,并覆盖你可能需要的任何方法。

1
2
3
4
5
public MyClientClass {
    public MyClientClass(){
        this.addRecordListener(new MyAdapterImpl());
    }
}
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计