我很好奇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属性放在那里类会变得很麻烦。
答案 0 :(得分:2)
你被MVC“编辑器不匹配”所困,即你有一个编辑/视图和一个模型,而且这两个人无法达成共识的信息。通常是editor/view needs additional information which the model doesn't care about。
Model View ViewModel (MVVM)解决了这个问题,解决方案与您的解决方案非常相似。
我建议的唯一变化是将“创建Bean”代码从模型移动到控制器。控制器旨在配置模型,视图和视图模型以便一起使用。