UOM(计量单位)设计模式

时间:2011-03-15 07:30:43

标签: c# java design-patterns design-principles

寻找关于存储和转换已知值(即米到英尺)的一般设计模式原则。谷歌搜索没有运气所以我必须遗漏一些东西。

假设在单个表中有多个具有各种UOM的字段,最佳做法是什么?目前许多领域都是隐含的,我们正在考虑对此进行标准化。我们希望让用户自由进入他们的UOM,而其他人则可以在他们喜欢的UOM中查看。

我应该存储“输入的值”并转换为一些常见的原语(用户输入的脚我转换为米并存储它)?我应该将此输入的脚值存储为审核备份吗?

我不是某个数据库表的唯一消费者,其他应用程序总是在知道值+ UOM与原始用户输入值的转换时更好。

对于我可能缺少的精确度是否存在严重的转换影响。 Meters> feet>米应该足够可靠,可以转换为业务线应用程序(转换可以是小数点后17位,但显示和输入的值限制为2-4位小数)

任何其他想法或链接指向正确的方向,所以我不是要重新解决已知问题的解决方案?

请注意,我没有设想一些带有运算符重载的宏大解决方案,但更多的内容可以在普通Joe Developer可以维护的实际应用程序中运行。

4 个答案:

答案 0 :(得分:2)

如果你想要一个跟随UOM的模式,JSR-275(java)会解决这个问题。实现JSR-275的流行库是JScience

至于值的存储,我只会为valuemeasurement type(例如米/英尺等)创建一个永不改变的列。然后可以根据要求轻松完成转换。

答案 1 :(得分:1)

查看分析模式一书。另外,请查看Quantity pattern

答案 2 :(得分:0)

一种选择是在数据库中使用转换表。 这样可以让用户以他们想要的任何方式输入测量值(测量+ uom代码),并且可以在出路时即时转换。

前段时间我回答了一个类似的问题SQL custom unit conversion

答案 3 :(得分:0)

查看此Java API以获取度量单位:http://www.unitsofmeasurement.org/