java - Java Swing 应用程序和 JavaBean 中的 MVC 约定

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

我很好奇 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/

相关文章:

java - Gui附加输出清晰度

java - Spring Boot 中的自定义 JWE 过滤器阻止 CORS 选项请求

android - Android 中的数据绑定(bind) : presentation model and view, 第三方库

model-view-controller - MVC架构

java - 你能像在 ArrayList 中那样循环遍历 HashMap 吗?

java - 带有 http servlet 的 MVC 模式

ios - 海量父子模式和委托(delegate)模式

c# - 将 GetItems 静态方法放在哪里? + 继承问题

c# - 保持用户联系的最佳设计/方式是什么?

java - 有没有办法将 POST 作为 GET 转发?