【发布时间】:2009-03-17 10:39:35
【问题描述】:
这是我试图找到合适设计的情况。
我需要存储数字配置文件。配置文件只是一系列数字。它们可以是 int、float 或 decimal 类型。每个配置文件都有一个基于枚举的 ProfileDescription 字段。
每个配置文件都有一个 ProfileVersion 对象的集合。每个 ProfileVersion 对象都有一个 ProfileValue 对象的集合。这些 ProfileValue 对象是存储所需类型的实际数值的地方。
我最初的设计想法是让 Profile、ProfileVersion 和 ProfileValue 通用。当我想要一个不同类型的配置文件列表时,我遇到了一个问题,而我没有。我可以使用 ArrayList 代替,但我将不得不丢弃其中的数据。
我虽然可以只将 ProfileVersion 和 ProfileValue 设为通用,然后让 Profile 对象根据 ProfileDescription 字段的值为 ProfileVersion 分配一个类型,但我找不到这样做的方法。
另一个想法是我应该使用 ProfileBase 类,然后使用 GenericProfileClass 或 IntProfile、FloatProfile 和 DecimalProfile 对其进行子类化,但这并不会真正给我带来任何优势,因为我必须将每个类都设为泛型,因为我必须强制转换反正每次都出子类。
非常感谢您对这种情况的最佳设计方法的想法。
谢谢
【问题讨论】: