Java Swing应用程序和JavaBeans中的MVC约定

时间:2013-01-23 12:55:29

标签: java model-view-controller design-patterns javabeans

我很好奇MVC约定的VIEW类是否可以检索bean对象以更改其文本显示。我没有将bean视为我的model,而是model更改了VIEW可以使用的bean的状态。根据请求,Model会将Bean的对象传递给控制器​​,然后控制器将其传递给Views。这不好吗?

Heres我的意思是: 比恩:

    public class Bean{

    private String eventName;
    private String eventDate;
    //getters
    //setters

}

型号:

public class Model {

Bean e = new Bean();
e.setEventOpportunity(rs.getString(7));
        e.setEventMoreDetails(rs.getString(8));
        e.setEndTime(rs.getString(9));



}

控制:

public class Control () {
public Control() {
Bean events; 
events = model.getEvent(tableClick); //tell model to change its state based on user input on views 
view.changeDisplay(events);
                    }

        }
        } 

查看:

     public class Views {
    public void editTextFields(Bean e) {
       try {
       txtEventName.setText(e.getEventName());
       String dateString = e.getEventDate();


       } catch(Exception te) {
           te.printStackTrace();
       }
   }



    }

这样的设计仍然是mvc惯例。我不希望我的模型很麻烦,因为它处理数据库并将Bean属性放在那里类会变得很麻烦。

1 个答案:

答案 0 :(得分:2)

你被MVC“编辑器不匹配”所困,即你有一个编辑/视图和一个模型,而且这两个人无法达成共识的信息。通常是editor/view needs additional information which the model doesn't care about

Model View ViewModel (MVVM)解决了这个问题,解决方案与您的解决方案非常相似。

我建议的唯一变化是将“创建Bean”代码从模型移动到控制器。控制器旨在配置模型,视图和视图模型以便一起使用。