为什么要使用Java事件?

战天诛 发布于 2014/10/27 16:46
阅读 212
收藏 1

最近在看JavaBean事件,感觉很麻烦,先是要把Bean变成源组件,然后还要用监听器,还要用事件处理器,像这样:

JButton jbt=new JButton();  //创建一个源对象
MyListener listener=new MyListener();  //创建一个监听器对象
jbt.addActionListener(listener);  //给源组件注册监听器



书里给了一个学生选课系统的例子,课程的添加学生方法course.addStudent(String student)他是这么写的:
public void addStudent(String student){
 students.add(student);  //添加一个学生
 if(students.size()>enrollmentCap){   //如果现有学生大于学生上限,跳到处理学生数过多的事件处理器
  processEvent(new ActionEvent(this,ActionEvent.ACTION_PERFORMED,null));
 }
}



处理器这么写的:

private class Listener implements ActionListener{
 public void actionPerformed(ActionEvent e){
 System.out.println("Enrollment cap exceeded");
 }
}



我就有点纳闷,直接这么写不就行了:

public void addStudent(String student){
  students.add(student);  //添加一个学生
  if(students.size()>enrollmentCap){   //如果现有学生大于学生上限,直接打印信息 
  System.out.println("Enrollment cap exceeded"); 
 }
}



请大神解答我的疑问,谢谢!
加载中
0
有明丶
有明丶
这是一种设计思想的问题,虽然你在这个例子上觉得按你的方式来写非常简单,但是到一些复杂的程序里,将数据和视图分离已经成为一种比较流行的方式。在Java通常通过事件接口来把数据更新到视图,这样的好处是数据处理的过程(这其中容易产生阻塞或者同步操作)不会影响视图(这其中主要收集用户输入和展示输出)。这种写法带来程序规范的同时,也提升了用户体验。
返回顶部
顶部