假设用于联系人数据库的数据结构 Person 。结构的字段应该是可配置的,以便用户可以将用户定义的字段添加到结构中,甚至可以更改现有字段。所以基本上应该有一个像
这样的配置文件FieldNo FieldName DataType DefaultValue
0 Name String ""
1 Age Integer "0"
...
然后程序应加载此文件,管理动态数据结构(动态不在“运行时更改”方式,但在“用户可以通过配置文件更改”方式)并允许轻松且类型安全的访问数据字段。
我已经实现了这一点,将有关每个数据字段的信息存储在静态数组中,并仅在对象中存储更改的值。
我的问题:是否有描述这种情况的模式?我想我不是第一个遇到创建用户可调节类的问题的人吗?
提前致谢。如果问题不够明确,请告诉我。
答案 0 :(得分:5)
我快速浏览了Martin Folwer的“企业应用程序架构模式”,元数据映射模式描述了(快速浏览)您所描述的内容。
摘录......
“元数据映射允许开发人员以简单的表格形式定义映射,然后可以通过通用代码处理这些映射,以执行读取,插入和更新数据的详细信息。” p>
HTH
答案 1 :(得分:3)
答案 2 :(得分:0)
处理此问题的常用方法是让类具有用户定义记录列表,每个记录都包含用户定义字段列表。配置信息forc可以很容易地存储在包含类型id,字段类型等的数据库表中。然后将实际数据存储在一个简单的表中,数据仅表示为(objectid + field index)/ string pair - 你在读取或写入数据库时,将字符串转换为真实类型。