Java:我应该在哪里放置匿名监听器逻辑代码?

Den*_*kiy 8 java swing listener anonymous-class

我们在工作中讨论了在java中使用监听器的最佳实践:监听器逻辑是应该保留在匿名类中,还是应该在单独的方法中,例如:

button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // code here
    }
});
Run Code Online (Sandbox Code Playgroud)

要么

button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        buttonPressed();
    }
});

private void buttonPressed() {
    // code here
}
Run Code Online (Sandbox Code Playgroud)

这是可读性和可维护性方面的推荐方法?我更喜欢将代码保留在侦听器中,并且只有当它变得太大时才使其成为内部类.在这里,我假设代码不会在其他任何地方重复.

谢谢.

biz*_*lop 4

我给自己定下的规则是:

  1. 如果侦听器有超过 2 个方法,请创建一个命名类。
  2. 如果侦听器跨越 10 行以上,请创建一个命名类。

非常简单,易于遵循并生成或多或少可读的代码。但我不得不承认我从来没有想过你的例子表明了什么。