用户可调整的数据结构

时间:2009-04-20 11:23:04

标签: delphi design-patterns dynamic

假设用于联系人数据库的数据结构 Person 。结构的字段应该是可配置的,以便用户可以将用户定义的字段添加到结构中,甚至可以更改现有字段。所以基本上应该有一个像

这样的配置文件
FieldNo  FieldName          DataType           DefaultValue
 0        Name               String             ""
 1        Age                Integer            "0"
 ...

然后程序应加载此文件,管理动态数据结构(动态不在“运行时更改”方式,但在“用户可以通过配置文件更改”方式)并允许轻松且类型安全的访问数据字段。

我已经实现了这一点,将有关每个数据字段的信息存储在静态数组中,并仅在对象中存储更改的值。

我的问题:是否有描述这种情况的模式?我想我不是第一个遇到创建用户可调节类的问题的人吗?

提前致谢。如果问题不够明确,请告诉我。

3 个答案:

答案 0 :(得分:5)

我快速浏览了Martin Folwer的“企业应用程序架构模式”,元数据映射模式描述了(快速浏览)您所描述的内容。

摘录......

元数据映射允许开发人员以简单的表格形式定义映射,然后可以通过通用代码处理这些映射,以执行读取,插入和更新数据的详细信息。” p>

HTH

答案 1 :(得分:3)

我建议查看Martin Fowler的企业应用程序架构模式here中的各种对象关系模式。这是它在这里介绍的模式列表。

最适合您的问题似乎是元数据映射here。还有其他模式,Mapper等。

答案 2 :(得分:0)

处理此问题的常用方法是让类具有用户定义记录列表,每个记录都包含用户定义字段列表。配置信息forc可以很容易地存储在包含类型id,字段类型等的数据库表中。然后将实际数据存储在一个简单的表中,数据仅表示为(objectid + field index)/ string pair - 你在读取或写入数据库时​​,将字符串转换为真实类型。