Tag: 数据对象

重构大数据对象

重构大型“仅状态”对象有哪些常见策略? 我正在研究一个特定的软实时决策支持系统,该系统可以对国家空域进行在线建模/模拟。 该软件消耗大量实时数据馈送,并对空域中的大量实体的“状态”进行每分钟一次的估计。 这个问题整齐地分解,直到我们达到目前最低级别的实体。 我们的数学模型估计/预测每个这些实体的过去和未来几个小时的时间线的50个参数,大约每分钟一次。 目前,这些记录被编码为具有许多字段的单个Java类(一些字段被折叠到ArrayList )。 我们的模型正在不断发展,并且各个领域之间的依赖关系还没有一成不变,因此每个实例都会在一个复杂的模型中漫游,随着它的进展积累设置。 目前我们有类似下面的东西,它使用构建器模式方法来构建记录的内容,并强制执行已知的依赖项(作为程序员错误的检查演变模式。)一旦估计完成,我们使用.build()类型方法将以下内容转换为不可变forms。 final class OneMinuteEstimate { enum EstimateState { INFANT, HEADER, INDEPENDENT, … }; EstimateState state = EstimateState.INFANT; // “header” stuff DateTime estimatedAtTime = null; DateTime stamp = null; EntityId id = null; // independent fields int status1 = -1; … // dependent/complex fields… … goes on for […]