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
项目大纲:
具有温度、质量、长度等类别的通用单位转换器。每个类别包含多个单位(例如华氏度、摄氏度等...)
到目前为止,我的方法是让 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