1

我是一名新手目标 c 程序员,在其他 OO 语言方面拥有丰富的经验。

目前我正在研究一个涉及一些单位转换的计算器。我最初的想法是有两个抽象类:MeasurementUnit。Unit 的子类可以是MeterKilogramSecond等。这些类将包含有关某些基本单位(可能是 SI 单位)的乘数的信息,以及一些对 UI 有用的信息,如标签和描述。测量的子类将是LengthMassTime等。这些类将包含测量的值和单位,以及确定允许的转换和进行转换所需的方法。

我开始有这样的问题,例如“我如何让任何需要它的 Length 类共享一个 Meter 类?” 和“如何存储该类型的任何测量通用的每个测量的允许单位列表?” 这让我相信我可能过度设计了我的类层次结构。我想知道是否有人对完成此任务的不同架构有建议,或者新手可能不知道的语言特性可能有助于我的实现。

提前致谢。

4

3 回答 3

1

所以,我用 Objective-C 写了一个单位转换库,我只使用了枚举。每个转换器类(面积、长度等不同的类)中都有一个查找方法,该方法有一条if()语句,将指定单位的乘数返回到基本单位中。然后转换方法除以该数字或乘以该数字,具体取决于您是从该单位转换还是从该单位转换。

于 2012-09-07T02:46:49.553 回答
0

我编写了一个名为UnitsKit的度量单位库,它不仅可以进行基本转换。例如,您可以将 m/s 乘以秒并得到米或英尺或任何其他长度单位。

类结构的基本概述从包含值和派生单位的 SMQuantity 开始。派生单位由一个或多个基本单位组成,每个基本单位都有自己的维度指数。每个基本单位由名称、符号、基本单位(m是km的基本单位)、尺度、静态有理和维度组成。看一看。

于 2013-08-24T10:03:49.227 回答
0

看看数量模式

重要的是这些类的行为就像不可变的值对象。

此外,《分析模式》一书更详细地介绍了测量观察。也许值得一瞧。

于 2012-09-07T01:36:20.503 回答