我创建了包含一些控制器和不同窗口的JavaFX项目。我想将数据从一个对象传输到另一个控制器。当我得到另一个窗口时,想要先前输入的数据保留在他们的字段中。是否会使用数据库并从中连续上传和下载数据是一个很好的解决方案?也许在每个控制器中创建JSON及其对象是更好的选择?有人能说点什么吗?或者提出更好的解决方案?
答案 0 :(得分:0)
你有一些选择:
用于存储状态的单例模式:您可以拥有一个包含所有临时数据的单例类。这种方法很像 数据库方法,因为你有一些数据源(作为中间人) 可以从程序中的多个点访问,但不是 它存储在RAM上的数据库。所以你会有类似的 问题,但它比数据库和持有更有效 对单例数据对象的引用,可以处理数据完整性 问题要容易得多(因为当你改变数据对象时) 引用你知道它是实际得到的原始对象 改变了,你不必担心。)
但是这也是一个非常糟糕的主意!使用单例模式存储状态是反模式。这不是这种模式的方式 打算使用。在此处阅读更多内容:Why is Singleton considered an anti-pattern?
使用第三方JavaFx框架:有一些JavaFx框架可以处理许多数据共享问题 控制器。您可以通过阅读我对类似问题here的回答来查看一些示例。以下是DataFx samples的示例 表示两个独立的发送者和接收者视图之间的数据共 与不同的控制器: 按发送,发送方发送数据,接收方接收数据。您可以在jar或my answer中查看详细信息。