gpt4 book ai didi

java Action 监听器: implements vs anonymous class

转载 作者:搜寻专家 更新时间:2023-10-31 20:11:58 25 4
gpt4 key购买 nike

我正在尝试自学 Java,但有一个问题我目前无法回答。在我的一些在线阅读中,我发现了两种使用似乎做同样事情的 Action 监听器的方法。但我想弄清楚其中一个相对于另一个的优势/劣势是什么。

像这样使用匿名类是否更好:

public MyClass() {
...
myButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//doSomething
}
});
...
}

还是最好像这样在类(class)开始时实现:

public MyClass() implements ActionListener {
...
myButton.addActionListener(this);

public void actionPerformed(ActionEvent e) {
//doSomething
}
...
}

最佳答案

只有当你的类确实是一个 ActionListener(is-a 关系)并且将在其他地方用作 ActionListener 时,它才应该实现 ActionListener。

如果它只是在内部用作 ActionListener,实现 ActionListener 会将实现细节泄露给类的 API。在这种情况下使用组合(有关系)。

其他接口(interface)和父类(super class)也是如此。

关于java Action 监听器: implements vs anonymous class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21631641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com