Java 我应该为多个按钮使用单个ActionListener的不同实例吗?

Java 我应该为多个按钮使用单个ActionListener的不同实例吗?,java,swing,jbutton,actionlistener,Java,Swing,Jbutton,Actionlistener,我有一个用于多个按钮的ActionListener: private class MyActionListener implements ActionListener { @Override public void actionPerformed(ActionEvent event) { if (event.getSource().equals(button1)) { // do something

我有一个用于多个按钮的ActionListener:

private class MyActionListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent event) {
            if (event.getSource().equals(button1)) {
                // do something
            } else if (event.getSource().equals(button2)) {
                // do something else
            }
        }
}
以下哪项是将ActionListener添加到这些按钮的更好方法?为什么

1.:

2.:


我选择了第二个选项,但不确定这是否正确。

这个问题征求意见,可能会被关闭,正因为如此,我以社区维基的身份回答,但我认为最好的答案是“视情况而定”


我要做的是,如果所有侦听器都完全相同,并且没有向每个构造函数传递任何不同的内容,那么只需让每个按钮共享同一个侦听器。如果我需要向侦听器传递唯一的信息,那么我使用单独的侦听器,但两者都可以工作,并且都不会在程序运行或响应方面造成明显的差异。

此问题征求意见,可能会被关闭,因此,我作为一个社区wiki回答,但我认为最好的答案是“视情况而定”


我要做的是,如果所有侦听器都完全相同,并且没有向每个构造函数传递任何不同的内容,那么只需让每个按钮共享同一个侦听器。如果我需要将唯一的信息传递给侦听器,那么我会使用单独的侦听器,但实际上这两种侦听器都可以工作,并且都不可能在程序操作或响应方面造成明显的差异。

第二种选择肯定会更快,但我认为速度差异非常小,在这种情况下并不重要。如果你需要一个更灵活的选择,那么我会选择选项1和参数。如果你的按钮做的是完全相同的事情,那么我会选择选项2。第二个选择肯定会更快,但我认为速度差是如此之小,在这种情况下并不重要。如果你需要一个更灵活的选择,那么我会选择选项1和参数。如果你的按钮做的是完全相同的事情,那么我会选择选项2。
button1.addActionListener(new MyActionListener());
button2.addActionListener(new MyActionListener());
MyActionListener mal = new MyActionListener();

button1.addActionListener(mal);
button2.addActionListener(mal);