在我的应用程序中,我处理了几个不同的“参数”,它们来自IParameter
接口,还有ParamBase
抽象基类。我目前有两种不同的参数类型,分别叫做FooParameter
和BarParameter
,它们都来自ParamBase
。很显然,当我需要处理它们时,我可以将它们当作IParameter
,或者当我需要处理它们的特定功能时检测它们的具体类型。仅在添加新方法时使用哪些OOP模式,而不是数据?
我的问题在于具体FooParameter
s。我目前有几个具有自己的类的衍生自FooParameter
的特定的类,我们将其称为FP12
,FP13
,FP14
等。这些都具有某些特征,这使得我在UI中以不同的方式对待它们。 (大部分名称都与各个位相关联,或位的范围)。请注意,这些特定派生的FP没有与它们关联的附加数据,只有属性(以不同方式引用相同的数据)或方法。
现在,我想保留所有这些参数在一个Dictionary<String, IParameter>
为简单的通用访问。问题是,如果我想引用特定的GUI函数,我不能写: FP12 fp12 = (FP12)paramList["FP12"]
,因为您不能向下派生到派生类型(正确如此)。但在我的情况下,我没有添加任何数据,因此演员理论上将工作。
应该使用什么类型的编程模型?谢谢!
现在只有我的子类只添加属性,所以我原来的路线现在工作。如果我添加任何其他数据或方法,您的提案将完美工作。 – 2010-06-06 23:00:59