StackOverflow 人群。我有一个非常开放的软件设计问题。
一段时间以来,我一直在寻找一个优雅的解决方案,我想知道这里是否有人对这个问题有一些出色的洞察力。认为这就像一个数据结构难题。
我要做的是创建一个能够从任何单位转换为任何单位的单位转换器。假设词法分析和解析已经完成。几个简单的例子:
Convert("days","hours") // Yields 24
Convert("revolutions", "degrees") // Yields 360
为了让事情变得更复杂一点,它必须平滑地处理输入之间的歧义:
Convert("minutes","hours") // Yields (1/60)
Convert("minutes","revolutions") // Yields (1/21600)
为了让事情变得更有趣,它必须处理复杂的单元而不需要列举所有的可能性:
Convert("meters/second","kilometers/hour")
Convert("miles/hour","knots")
Convert("Newton meters","foot pounds")
Convert("Acre feet","meters^3")
没有正确或错误的答案,我正在寻找有关如何完成此任务的想法。总是有一个蛮力解决方案,但我想要一些简单且可扩展的优雅。