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

Swift: maximum readability and extendability in example unit converter project

项目大纲:

具有温度、质量、长度等类别的通用单位转换器。每个类别包含多个单位(例如华氏度、摄氏度等...)

到目前为止,我的方法是让 a class 符合以下协议的每种类型的单位 (华氏度、摄氏度等...):

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 中的值。形式以class.

为单位

理想情况下,我希望能够构建代码,以便添加新单元(在现有类别中)的过程与添加新单元一样简单 class.

我只是在学习 OO 编程,我确信这可能不是一个很好的方法,所以在此阶段非常感谢 feedback/advice

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

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