1

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

这是我的意思: 豆:

    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 属性放在那里,类会变得很麻烦。

4

1 回答 1

2

您被 MVC 的“编辑器不匹配”所困,即您有一个编辑器/视图和一个模型,而两者无法就如何公开哪些信息达成一致。通常,编辑器/视图需要模型不关心的附加信息

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

我建议的唯一更改是将“创建 Bean”代码从模型移动到控制器。控制器旨在配置模型、视图和视图模型以很好地协同工作。

于 2013-01-23T13:10:39.657 回答