Swift:示例单位转换器项目中的最大可读性和可扩展性

时间:2015-05-08 11:54:53

标签: swift methods

项目大纲:

通用单位转换器,包括温度,质量,长度等类别。每个类别包括几个单位(如华氏温度,摄氏温度等......)

到目前为止,我的方法是为每种类型的单位(华氏温度,摄氏温度等)一个符合以下协议的类:

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编程,我确信这可能不是一个非常好的方法,所以在这个阶段真的很感谢反馈/建议

1 个答案:

答案 0 :(得分:0)

我已经做了一些非常相似的事情,尽管它还没有严格的SI概念。

请参阅https://github.com/fluidsonic/JetPack/tree/master/sources/measurement