我的应用程序是一个非常典型的业务应用程序,它有很多参考列表。例如,我可能有一个表具有状态(暂停,正在进行,完成等),或包含国家/地区的表,或包含选项列表的表。
目前我将此参考数据存储在表中,每种类型有一个表(例如,状态表,国家/地区表等)。然而它现在变得混乱,处理它的开销太高了。 (添加新的参考表意味着更新所有相关的基础设施)。
目前我的解决方案有4个部分:
我环顾四周,发现了一个相关的问题here,但它更侧重于缓存。我正在寻找专注于参考数据整体处理的最佳实践。
我目前的方法看起来很笨拙,我想重做它,因此更容易使用。但在我深入研究并创造出稍微好一些的东西之前,您能否建议或指出管理和使用参考数据的最佳实践?
答案 0 :(得分:0)
我理解的问题是组件的激增,因为每个参考数据类别设计都有一个表。
另一种方法是使用以下模式的单个表:
键入值 “国家”美国 “国家”加拿大 “状态”“就绪” “状态”“OnHold”
然后,您可以拥有一个知道如何将此模式存储到数据结构中的智能类,例如:
Set<String> countries;
Set<Status> status;
..
..
您可以使用单个API或具有特定方法的单独API,例如:
getCountryList();
addCountry();
API将封装以任何形式智能地返回适当数据结构的细节,以及添加新数据结构。
如果你有一些这些项目,并且不想制作这些项目的多个副本(并且只是重复使用内存中的现有单个副本),你也可以使用FlyWeight模式。上述API将是FlyWeight(http://en.wikipedia.org/wiki/Flyweight_pattern)。这将解决一些效率问题。
只是一个裂缝。