如何实现关联类?

时间:2011-07-22 16:24:17

标签: c#

什么是关联类,如何实现此给定模型的关联类。 看屏幕截图 enter image description here

1 个答案:

答案 0 :(得分:4)

基本上:

class GeoObjectPart
{
  public int Category { get; set; }
  public IEnumerable<GeoObjectPart> Parts { get; set; } 
}

class GeoObject
{
 public int ObjectType { get; set; } // do not use Type as a property name!
 public long Id { get; set; }
 public IEnumerable<GeoObjectPart> Parts { get; set; } 
}

Line, Point, Area继承GeoObjectPart类。

BTW,GeoObject.TypeGeoObjectPart.Category意味着相同?在这种情况下,请考虑重新设计,因为您可以使用单个类而不是GeoObject and GeoObjectPart

此外,很少有建议:

  • 将基类标记为抽象,因此避免实例化设计为基础的类
  • 名称基类,前缀为base,如GeoObjectBase
  • 考虑GeoObjectBase class
  • 的界面
  • 如果这可能避免public setters,那么实例将是不可变的