对象建模问题

时间:2010-06-21 11:16:33

标签: c# modeling

我有班级汽车,每个班级都有额外的名单(皮革,腹肌,折叠镜等......)

public Extra
{
public bool Paid {get;set;}
public string Name {get;set;}
public string Code {get;set;}
}

现在,更好的是:

class Car
{
public Extra Leather {get;set;}
public Extra FoldingMirrors {get;set;}
public Extra Abs {get;set;}
}

或更好:

class Car
{
private List<Extra> _listOfExtras=new List<Extra>

public List<Extra> ListOfExtras
{
...
}
}

最糟糕的部分:

我的winforms应用程序脱机工作,每月一个为我发送数据。

我必须在这个应用程序中持有可用的(foreach汽车用户选择额外的)附加列表,所以更好的方式我认为是选项一。

如何在我的应用程序中保存此附加列表?它每月只与webservice连接一次。

3 个答案:

答案 0 :(得分:2)

就个人而言(看到这是主观的),我会使用Extra的接口(例如IExtra)。我还会选择在Car类中包含附加列表/字典的第二个“选项”。

如果需要,只需在列表/词典中查找值,就可以像在选项1中那样公开它们。

答案 1 :(得分:1)

附加内容的列表或字典(为了便于访问)会更灵活。

这意味着当添加和/或从汽车中删除额外内容时,您不必修改Car类,如果每个类都是明确添加的,则必须执行此操作。

有多种方法可以在本地存储列表。你可以序列化到一个文件 - 无论是纯文本还是XML,哪个更好,因为你有为你做序列化的类,或者你可以把它保存在本地数据库中。

答案 2 :(得分:1)

我会将其存储在Dictionary<string, Extra>中。你不希望同一个额外的东西出现多次......或者至少多付一次: - )

另外,Extra应该是一个接口(或者至少是一个抽象类)..

至于存储,您可以将Car类序列化为XML。