- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在接触 javafx。这就是我正在做的。
FXML Views
DI Controllers
Weld-SE Managed Services and Models
Trying to confine UI to FXML
Trying keep the Controllers thin
问题:
在尝试编写 UI 代码时,大多数静态 UI 都被限制在 fxml 中。但在某些情况下,我发现自己可以添加、删除、显示、隐藏元素等。
我发现自己在 Controller 内部执行此操作,因为 fx 允许我在 View 中配置 Controller 方法,它将调用特定的操作/事件。所有这些代码都处理动态 UI 构建/操作并且属于 View 层。但是,它最终会在 Controller 中使 Controller 变胖。
javafx 提供 javascript 集成。这是一种将 View 操作代码抽象出来的可能方法。但这会在组合中添加不太完美的 javascript。
我如何在 java 或 fxml 中抽象出代码,以免破坏瘦 Controller 范例?
编辑
@assylias
同意,我已经考虑过这种方式,java类和fxml一起成为一个可重用的小部件。但是,我如何将其连接到 FXML 中。 FXML 除了 Controller 什么都不懂。假设我使用 fx:controller 将这个 View 类连接到 fxml 中,而不是将其命名为 controller。所以我有这样的东西。
这个 View 类只有 View 操作代码。然后我会创建另一个 Controller 类。但是我希望以某种方式将表单数据填充到这个 Controller 中。这应该只在用户提交表单时发生。所以在某种程度上,我需要以某种方式告诉 javafx UI 操作请求/事件不同于实际的数据操作请求/事件。
您的想法,抱歉,如果它冗长。试图用尽可能少的词来表达它。
最佳答案
我认为最简单的解决方案是记住 FXML 中指定的 Controller 是 View Controller 。它的目的是包含修改和更新 View 的代码,而不是包含传统的 MVC Controller 代码或业务逻辑。
例如,在我目前正在进行的项目中,我将 JavaFX 与 Akka Actors 结合使用.该应用程序是用 scala 编写的。 JavaFX View Controller 包含修改 View 所需的任何代码。一个屏幕包含一个登录表单。当用户点击登录按钮时, View Controller 简单地创建一条包含用户名和密码的消息,并将该消息发送给负责执行业务逻辑的参与者。如果该 actor 确定存在错误,那么它会将消息发送回 View Controller ,并且 View Controller 可以决定需要在屏幕上进行哪种更新。
我发现将 akka actor 与 JavaFX 结合使用可以极大地简化应用程序的编码,原因至少有两个。
javafx.concurrent.Task
代码的需要。关于java - 瘦 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14714174/
我正在接触 javafx。这就是我正在做的。 FXML Views DI Controllers Weld-SE Managed Services and Models Trying to confi
今天,我了解到使用胖模型和瘦 Controller 被认为是很好的做法。到目前为止,我的想法恰恰相反,所以我认为自己理解的有关 MVC 的一切现在都被证明是错误的。 大多数文章都表明胖模型/瘦 Con
我在 ear 中打包的瘦 war 中遇到了类加载问题。这里还封装了其他的ejb模块。有些可以通过 spring 加载,有些则不能。 想象一下以下场景: someApp.ear |- someEJBs1
我有一个项目,其中 3 个 war-modules 被打包在一个 ear-module 中。我的问题是每个库 jar 都包含在每个 war 模块以及 ear 模块中,这使得生成的 ear 文件非常大(
问题是如何使用 Oracle JDBC 瘦驱动程序并通过仅在 URL 中指定来强制加密? 据了解,我们需要将Oracle Net参数oracle.net.encryption_client设置为req
我尝试根据 RVM and thin, root vs. local user 设置精简服务和 http://wiki.rubyonrails.org/deployment/nginx-thin?re
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 8年前关闭。 Improve this
我在使用 NetBeans V6.7.1 的 Oracle 11g 中遇到 JDBC Thin 问题。我不知道如何配置它。我已经设置了ojdbc6.jar和orai18n.jar的类路径。但我仍然无法
我有一个新的 tomcat 应用服务器运行在 tomcat 6、java 6 (openjdk)、centos 6.2 上。服务器是在centos 6.2主机上运行在qemu-kvm下的虚拟机。主机和
我的代码有效,但我知道最好有胖模型和瘦 Controller 。 但是,我使用了 3 种不同的型号,不幸的是我的 Controller 变胖了。组织此代码的最佳方式是什么(使用胖模型/瘦 Contro
很抱歉提出这样一个愚蠢的问题,但在文档中找不到它: filename.slim filename.html.slim 这似乎是一种非常适合使用的语言。我以前使用过 HAML,所以我认为这将是一个相当不
我已经从这个链接http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-10201-088211.html 下载了驱动程序
如何减少fontawesome fa-bars的粗细,增加垂直线之间的距离并延长水平线? .fa { margin: 40px; font-size: 14px; } 最佳答案 为什么不试
我有一个在 IE 和 Excel(用于报告)中呈现的 html 表格 如果我将 border-width 设置为 thin,它在 IE 中显示 2px 边框,在 Excel 中显示 1px 边框。 但
我有一个 Controller 操作,用于执行产品列表、分页和一些过滤器,例如类别(来自下拉列表)、标题(来自文本字段)、库存(来自复选框)这是我的 Controller : class Prod
通过 this question 上的慷慨帮助,我把下面的 MVVM 结构放在一起,它在 XAML(当前日期/时间)中实时显示模型的变化,非常好。 A cool advantage of this s
我刚刚读了一篇blog post这可以用银行类比来解释 MVC。我有几个月使用 MVC 框架(CakePHP)开发 Web 应用程序的经验,所以我掌握了基础知识,但我开始看到一个主题,让我认为我在放置
我最近向我的 Rails 路由文件添加了子域约束 constraints(:subdomain => 'new') do devise_for :customers do get "/cu
最干净的方法是什么?一些 Rack 中间件?我尝试修改 env['SERVER_SOFTWARE'] 但我仍然得到响应: Server: thin 1.3.1 codename Triple Espr
目前我正在使用 ojdbc14.jar Oracle 10g 瘦驱动程序来访问 Oracle 10g 数据库。 我想将驱动程序升级到瘦 ojdbc6.jar Oracle 11g 驱动程序提前数据库服
我是一名优秀的程序员,十分优秀!