我正在与保险合作,并有两种不同的政策类型 - 汽车和家庭,由两个不同类别Motor和Household代表。C#类继承
两者都有几个共同的数据位,所以两者都会从另一个称为Policy的类继承。当用户登录应用程序时,他们可能会有电机或家庭政策,所以应用程序需要显示通用信息和汽车或家庭特有的信息。来封装这一切,我有既具有电动机构件和家庭成员的响应对象,如下所示:
public class Response
{
...
private MotorPolicy _motorPolicy;
private HouseholdPolicy _householdPolicy;
....
}
下面的代码应证明:
if (response.PolicyType == Enumerations.PolicyType.Motor)
{
lblDescription.Text = response.MotorPolicy.Description;
lblReg.Text = response.MotorPolicy.Reg;
}
else
{
lblDescription.Text = response.HouseholdPolicy.Description;
lblContents.Text = response.HouseholdPolicy.Contents;
}
的MotorPolicy不具有内容属性并且HouseholdPolicy没有Reg属性。
但我真的想简单地做:
if (response.PolicyType == Enumerations.PolicyType.Motor)
{
lblDescription.Text = response.Policy.Description;
...
}
我已经使用泛型尝试,也没找到合适的解决方案。
他有一个名为Policy的基类,使用接口而不会改变任何东西。 – jgauffin 2010-10-05 14:25:54
这实际上并不是我如何理解优秀的oo设计。家庭政策没有注册号码,汽车政策没有内容。因此,设计是误导 – 2010-10-05 14:28:20
行..然后他可以OP可以这样定义另一种方式.. MotorPolicy:Policy,IPolicy – RameshVel 2010-10-05 14:29:09