繁体   English   中英

当创建期间所有源中的数据都不可用时,如何从多个数据源构建 java object?

[英]How to build a java object from multiple data sources when data is not available in all sources during the creation time?

我有一个正在尝试解决的设计问题,如果您有任何建议,我希望能收到您的回复。

假设我们有一个你正在监听的队列,队列接收到一个消息,你应用中的监听器抓取它,并构建一个object,并推送到缓存中,此时object信息有它的数据仅从队列中收到,但它仍在waiting other data sourcesnot available的其他数据(假设它是一个数据库),当数据在其他数据源中可用时,更新 object 的最佳方法是什么?

  • 我应该在后台运行一个线程来定期获取数据吗?
  • 我正在考虑使用装饰器设计模式来构建 object,这是一个好方法吗?
  • 欢迎提出任何建议。

更新:评论里有朋友问我是不是把问题复杂化了,不是这样的,添加更多细节来解释为什么情况不简单,假设你有一个计划从A点开车到B点,所以你为您的旅行创建一个记录,但是要完成这个记录有一些依赖性,比如您正在等待朋友确认他的上车地点。 并且您正在等待收到您的付款支票,当您收到取件地点时,您将更新记录,稍后当您收到付款时。 您也将提前 go 并更新它。 希望通俗易懂地解释一下。

为了从其余来源获取数据,请将执行程序与Future结合使用。

如果您不熟悉期货,这里有一些教程:

  1. https://www.baeldung.com/java-future
  2. http://tutorials.jenkov.com/java-util-concurrent/java-future.html

您可以使用装饰器设计模式,但这通常是为了扩展对象的功能,而不是添加数据。

如果这些主要是纯 java 对象 (POJO),仅用于存储数据,我建议您在从其他数据源获取数据时使用设置添加数据。

如果有大量数据,按数据源划分是有意义的,你可以有一个外部 object 和内部对象,每个来自不同的源(构建器模式)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM