我目前正在用Java编写Blackjack应用程序,它需要用MVC架构编写.我的所有模型,视图和控制器都完全编码,一切都很完美.但是,我想知道将侦听器附加到组件的最佳方法是什么(例如,JButton).
我当前的设计声明视图中需要侦听器作为公共final的所有组件.然后它将视图传递给控制器.从那里,控制器具有完全的统治权来访问组件并添加动作侦听器.代码示例:
public class View extends JFrame {
public final JButton myBtn1 = new JButton("Button 1");
public final JButton myBtn2 = new JButton("Button 2");
public View() {
//constructor code here....
}
}
public class Controller {
private Model myModel;
private View myView;
public Controller(Model m, View v) {
myModel = m;
myView = v;
//now add listeners to components...
myView.myBtn1.addActionListener(new MyActionListener1());
myView.myBtn2.addActionListener(new MyActionListener2());
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我的一个朋友已经宣布他的所有JButton都具有私有范围,然后在视图中使用公共方法向其各自的组件添加动作侦听器.对我来说,这似乎是浪费时间,只会增加不必要的代码.代码示例:
public class View extends JFrame {
private JButton myBtn1 = new JButton("Button 1");
private …Run Code Online (Sandbox Code Playgroud)