2014-03-31 79 views
0

什麼好處/使用的缺點(方法1)一個單獨的監聽器類(也許一個內部類),如:實現接口獨立的監聽器類與實現接口與匿名內部類?

public class ClassA implements ActionListener, WindowListener 

private ClassAAL implements ActionListener 
{ 
    ... 
} 
private ClassAWL implements WindowListener 
{ 
    ... 
} 

與(方法2)(方法3)爲需要偵聽器的每個元素使用Anonymous類設置偵聽器。

btn.addActionListener(new ActionListener()...); 

問:什麼是每種方法的優點和缺點?是否有性能優勢,或者有哪些設計模式相互推薦?或任何其他好處?

我可以看到:

  1. 第一種方法是清潔器
  2. 第二種方法是更緊湊
  3. 第三種方法增加了聽者代碼右邊處的元素。

注意:我在此看到一個問題Nested class vs implements ActionListener;但大多數答案似乎給了這個人使用的東西,而不是每種方法的優點/缺點。

回答

1

如果你希望你的聽衆更接近(API使用),那麼我會建議方法2.我也使用私有類停了幾年前和使用public static嵌套類:

public class YourClass { 

    public static YourNestedClass { 
     //... 
    } 

} 

有除了你自己的實現之外,它們的初始化沒有真正的性能差異。如果你爲30個不同的監聽器對象製作一些可以用普通對象完成的事情(如方法1/2),那麼可能會有細微的差別。否則,你可以真正做你喜歡的。