java - 使用 JFace 的查看器是否会妨碍良好的 MVC 分离?

标签 java model-view-controller user-interface jface

我正在编写一个 GUI 应用程序,我想使用 Swing 和 SWT。最终用户将以某种方式指定应该使用哪个(它不会同时使用两者!)。 SWT 是我通常比较喜欢的,并且我一直在关注 JFace,但似乎如果我使用它最强大的功能,我会增加 GUI 和模型之间的耦合,并使抽象 GUI 变得更加困难,因此 Swing 可以也用过。

是这样的吗?是否可以在不将 GUI 详细信息绑定(bind)到模型中的情况下使用 JFace,反之亦然?

最佳答案

据我所知,使用 JFace 查看器可以很好地分离 View 和模型。

这里唯一的紧密耦合是实际查看器实现的选择(例如,使用 TableViewer 与 TreeViewer 将模型分别绑定(bind)到表或树小部件)。

关于问题的第一部分,它表明您出于某种原因想要将应用程序与 GUI 框架的选择分离,我建议您看一下 UFace project

UFace 项目旨在提供您似乎想要的东西——一个可以针对许多 GUI 后端运行的单一 UI 实现(它调用Providers):

在撰写本文时,UFace 项目页面列出了对以下提供商的支持:

  • JFace/SWT
  • Swing
  • GWT

(我还听说有传言称正在开展一些支持 Qt Jambi 提供商的工作)

关于java - 使用 JFace 的查看器是否会妨碍良好的 MVC 分离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1989636/

相关文章:

java - RxJava : wait another observable result

java - JSTL:显示列表中的 N 项

asp.net-mvc - 在 MVC 中,有没有一种方法可以对模型属性进行别名以在 html.Labelfor 中显示

javascript - 使用 javascript 函数加载 View

Java gui 未立即更新

java - JCheckboxes 和 JButton 不随机显示

java - H2OServerError : Server process terminated with error code 1 in Python on Mac while running h2o. 初始化()

java - Android Model View Controller 实现给出错误

user-interface - 插入表格 View 并添加按钮或空白行时最好?

java - MongoDB DBRef 列表在 Spring Boot 中返回 null