我很好奇 MVC 约定的 VIEW 类是否可以检索 bean 对象来更改其文本显示。我没有将 bean
视为我的 model
,而是 model
更改 bean 的状态,然后可以由 VIEW
。根据请求,模型会将 Bean 对象传递给 Controller ,然后 Controller 将其传递给 View 。这很糟糕吗?
这就是我的意思: bean :
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 属性放在那里,类会变得很麻烦。
最佳答案
您被 MVC“编辑器不匹配”所困,即您有一个编辑器/ View 和一个模型,但两者无法就公开哪些信息达成一致。通常,editor/view needs additional information which the model doesn't care about .
Model View ViewModel (MVVM)解决了这个问题,并且解决方案与您的非常相似。
我建议的唯一更改是将“创建 Bean”代码从模型移至 Controller 。 Controller 的目的是配置模型、 View 和 View 模型,以便它们能够很好地协同工作。
关于java - Java Swing 应用程序和 JavaBean 中的 MVC 约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14480271/