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

这是这样做的正确方法吗?我正在使用 MVC 模式。


在我的 View 类中,我有一个Button.


Button fooButton = new Button();


public void addFooButtonListener(ActionListener foo){

    fooButton.addActionListener(foo);

}

在我的 Controller 类构造函数中:


 this.theView.addFooButtonListener(new Listener());

在控制器类中,我使用了一个名为的内部类 Listener


class Listener implements ActionListener {

    public void actionPerformed(ActionEvent e){

        //do whatever i want

    }

}

有人告诉我,这不是正确的做法吗?这是真的?如果是,正确的方法是什么?


烙印99
浏览 125回答 1
1回答

子衿沉夜

正如共享的那样,您当前的代码非常好,并且没有问题。但是,您可以使用以下实现:匿名类:new ActionListener() {    public void actionPerformed(ActionEvent arg0) {        // To Do :: Task here    }}拉姆达表达式:button.addActionListener(e -> {    // Task implementation here});虽然这取决于需求,但我在你的实现中看到的唯一缺点是当你有多个按钮具有不同的动作时,最终会出现大量的内部类。另外,如果你觉得同一个动作可以在不同的类中使用,你也可以ActionListener在maybelisteners包中单独实现一个类,然后在所有类中使用它。同样,这一切都是特定于需求的,因此您可以选择最适合您的项目。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java