项目大纲:
通用单位转换器,包括温度,质量,长度等类别。每个类别包括几个单位(如华氏温度,摄氏温度等......)
到目前为止,我的方法是为每种类型的单位(华氏温度,摄氏温度等)一个符合以下协议的类:
protocol Unit {
var name: String { get }
var category: String { get }
func normaliseToSI(input: Double) -> Double
func convertFromSI(input: Double) -> Double
}
方法normaliseToSI()
将单位(比如摄氏度)转换为该类别的S.I.单位(即开尔文)。方法convertFromSI()
将S.I.表单中的值转换为类的单位。
理想情况下,我希望能够构建代码,以便添加新单元(在现有类别中)的过程就像添加新类一样简单。
我只是在学习OO编程,我确信这可能不是一个非常好的方法,所以在这个阶段真的很感谢反馈/建议。
答案 0 :(得分:0)
我已经做了一些非常相似的事情,尽管它还没有严格的SI概念。
请参阅https://github.com/fluidsonic/JetPack/tree/master/sources/measurement