2013-08-09 2 views
3

В комментариях ответ на один из моих ответов, Hovercraft сказалЭто плохая практика, чтобы использовать ActionListener (это)

Нет, ваше предложение будет делать вещи хуже, на самом деле, так как при использовании этого как ActionListener, вы предлагая ему сделать его «Просмотр» также «Управлением», что-то, что нельзя делать ни в чем, кроме «игрушечных» программ.

Как новичок, я всегда использовал «это», и я не понимаю, почему это так обескуражено. Может ли кто-нибудь объяснить/разработать ответ на воздушную подушку или дать другой?

Comment-- https://stackoverflow.com/questions/18021509/how-can-i-call-method-with-a-string/18021674#18021674

+8

Вместо ссылки на пользователя вы можете найти ссылку на пост или комментарий в вопросе? Возможно, вам стоит сначала прокомментировать его. – hexafraction

+2

Похоже, он советует разобраться в проблемах, а не делать свой класс более чем с –

+1

Ах, извините, я думал, что больше людей тоже захочет узнать, вот почему я спросил – discipliuned

ответ

4

Это причина свинг следует MVC шаблон. Если вы делегируете Controller и View одному классу, то что-то не так. Также читайте около Single Responsability Principle, класс должен отвечать только за одну вещь, если не кажется, что ваш класс похож на God, который делает все.

Вместо

public class MyJFrame extends JFrame implements KeyListener{ 
    MyJFrame(){ 
     this.addKeyListener(this); // sounds awful   
    } 
} 

использовать что-то вроде этого:

public class MyFrameView { 

private JFrame frame; 

    MyFrameView(){ 
     frame = new JFrame(); 
     frame.addKeyListener(new MyKeyListener()); 
    } 

} 

public class MyKeyListener implements KeyListener{ 

} 
Смежные вопросы