【问题标题】:Would like some modelling tips for dependent values想要一些依赖值的建模技巧
【发布时间】:2009-10-18 11:59:48
【问题描述】:

我正在为一个简单的钓鱼比赛制作模型,但我的设计存在一些问题。

钓鱼游戏的主要类是 Capture,它看起来像这样:

public class Capture : Entity {

    public virtual int Weight { get; set; }
    public virtual int Length { get; set; }
    public virtual DateTime DateForCapture { get; set; }

    public virtual User CapturedBy { get; set; }
    public virtual Species Species { get; set; }
}

到目前为止没有问题,但我不确定如何为游戏建模。

  • 每个物种都与每年变化的参考重量相关
  • 捕获点的数量是其权重除以该物种的当前参考权重。

解决问题的一种方法是将捕获连接到 SpeciesReferenceWeight 而不是 Species

public class SpeciesReferenceWeight : Entity
{
    public virtual Species Species { get; set; }
    public virtual int ReferenceWeight { get; set; }
    public virtual int Year { get; set; }
}

但是通过这种方式,捕获与游戏的实现细节相关联,在我看来,捕获仍然是捕获,即使它不包含在游戏中。

我的目标是:http://hornalen.net/fishbonkern/2007/,这是我几年前用蛮力 sql 写的,没有域模型。

对于这个问题的各种反馈,我很高兴。

【问题讨论】:

    标签: c# nhibernate domain-driven-design


    【解决方案1】:

    如果你研究Fowler's patterns for things that changes with time(即参考重量),我想你会找到解决方案的。

    【讨论】:

    • 我很确定这是一个可能的解决方案,我会试一试。我认为查询将是最难解决的部分,但我猜可以使用 nhibernate 计算属性来解决它?
    【解决方案2】:

    听起来好像缺少一些实体。您谈论游戏和可能是游戏一部分的捕获。为了让您开始,您可以引入实体 GameCapture。

    public class GameCapture : Entity
    {
        public virtual Capture { get; set; }
        public virtual SpeciesReferenceWeight { get; set; }
    }
    

    您可能还需要一个 Game 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      相关资源
      最近更新 更多