为了账号安全,请及时绑定邮箱和手机立即绑定

Java中侦听器的内部类,这是不好的做法吗?

Java中侦听器的内部类,这是不好的做法吗?

烙印99 2021-06-08 16:01:44
这是这样做的正确方法吗?我正在使用 MVC 模式。在我的 View 类中,我有一个Button.Button fooButton = new Button();public void addFooButtonListener(ActionListener foo){    fooButton.addActionListener(foo);}在我的 Controller 类构造函数中: this.theView.addFooButtonListener(new Listener());在控制器类中,我使用了一个名为的内部类 Listenerclass Listener implements ActionListener {    public void actionPerformed(ActionEvent e){        //do whatever i want    }}有人告诉我,这不是正确的做法吗?这是真的?如果是,正确的方法是什么?
查看完整描述

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

正如共享的那样,您当前的代码非常好,并且没有问题。但是,您可以使用以下实现:


匿名类:


new ActionListener() {

    public void actionPerformed(ActionEvent arg0) {

        // To Do :: Task here

    }

}

拉姆达表达式:


button.addActionListener(e -> {

    // Task implementation here

});

虽然这取决于需求,但我在你的实现中看到的唯一缺点是当你有多个按钮具有不同的动作时,最终会出现大量的内部类。


另外,如果你觉得同一个动作可以在不同的类中使用,你也可以ActionListener在maybelisteners包中单独实现一个类,然后在所有类中使用它。


同样,这一切都是特定于需求的,因此您可以选择最适合您的项目。


查看完整回答
反对 回复 2021-06-10
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信