我有以下课程:
public class CraneModel
{
public long? Id { get; set; }
public long? IDType { get; set; }
public long? IDManufacturer { get; set; }
public string Name { get; set; }
public long? MaxLoad { get; set; }
public long? MaxSpan { get; set; }
public long? Speed { get; set; }
}
现在,我必须独立填充一个数据列表,该列表是我在此处存储的数据的子集。数据结构如下所示:
public class CraneSubModel
{
public string Name { get; set; }
public long? MaxLoad { get; set; }
public long? MaxSpan { get; set; }
public long? Speed { get; set; }
}
我想知道什么是最好的方法。使用CraneModel
并忽略其他变量是一种好形式吗?还是建立一个可以容纳这些数据的新结构?关于这两种解决方案的一些想法。
CraneModel
,并且有一天必须更改,则此
也可能导致必须重新整理列表,甚至
一个新的结构。CraneSubModel
似乎是多余的,因为已经存在一个
可以保存这些确切数据的结构,因此可能很难
保持(如果有一天我只需要Name
和MaxLoad
,
确切的情况将会出现,并且每次都使用新的结构
会使事情变得非常复杂)。答案 0 :(得分:5)
在我看来,您拥有这个对象模型(尽管有类名):
public class CraneSubModel
{
public string Name { get; set; }
public long? MaxLoad { get; set; }
public long? MaxSpan { get; set; }
public long? Speed { get; set; }
}
public class CraneModel : CraneSubModel
{
public long? Id { get; set; }
public long? IDType { get; set; }
public long? IDManufacturer { get; set; }
}
答案 1 :(得分:5)
我建议您使用composite
,因为它可以减少CraneSubModel
和CraneModel
的耦合。
如果有一天您修改CraneSubModel
不会直接影响CraneModel
类
public class CraneSubModel
{
public string Name { get; set; }
public long? MaxLoad { get; set; }
public long? MaxSpan { get; set; }
public long? Speed { get; set; }
}
public class CraneModel
{
public long? Id { get; set; }
public long? IDType { get; set; }
public long? IDManufacturer { get; set; }
public CraneSubModel subModel { get; set; }
}