我目前正在开发一个可以在连接到 PC 的设备上读取和设置配置值的库。每个配置字段都由一个常量 ( public static readonly
) 对象描述,该对象包含该字段的名称、其数据类型(以及值限制)以及读取/写入它所需的命令序列。
这些信息大多只在图书馆内需要。但是,客户端代码需要能够告诉库读取/写入特定字段,并且我还想在将字段与其值相关联的字典中传递配置值的集合。为此,我需要提供标识字段的公共值。
可以使用相同的对象在内部描述字段并公开标识它们吗?感觉有点不对劲,但我无法说出原因。我希望您可以消除我的疑虑,或者告诉我为什么这是一个坏主意或要注意什么。
更新:我最终为字段标识和实现字段访问使用了相同的对象。现在,几个月后,我终于遇到了一个问题,它强调了为什么这不是一个干净的解决方案:正如我上面提到的,一个字段对象代表设备上的一个配置字段。这与访问此类字段的方式无关。
更笼统地说:我对事物的隐藏内部表示并没有描述事物。它描述了与不一定具有 1:1 关系的事物相关的事物。
如果您想更改字段访问权限,这可能会成为一个问题。例如,现在我无法创建一个提供“错误重试”访问行为的字段装饰器类。使用装饰器的代码会将其视为自己的字段,与实际的底层字段无关。
请注意,这不是对原始问题的回答,而是意识到我的假设是错误的。如果您真的确定您对事物的内部描述与事物本身具有 1:1 的关系,则此问题不适用。