Domain driven design 一个具有非参数的递归股票系统的建模-

Domain driven design 一个具有非参数的递归股票系统的建模-,domain-driven-design,Domain Driven Design,我试图建立一个业务领域的模型,该领域生产的股票实际上有一个复杂的递归股票系统 库存可以在项目级别进行唯一标记,或者 库存可以在包装箱级别进行唯一标记(包含许多无法识别的项目),或者 可以在托盘级别(包含许多无法识别的箱子)标记库存,或者 库存可以唯一地标记,然后包含在上面的级别中,即在唯一的框中包含唯一的项目。或直接放置在独特托盘上的独特物品 这就是我所想的,但是我不确定“QuantityOfUnditifyableInners”,但是我不知道有什么更好的方法来建模一个系统,这个系统可能唯一地识

我试图建立一个业务领域的模型,该领域生产的股票实际上有一个复杂的递归股票系统

  • 库存可以在项目级别进行唯一标记,或者
  • 库存可以在包装箱级别进行唯一标记(包含许多无法识别的项目),或者
  • 可以在托盘级别(包含许多无法识别的箱子)标记库存,或者
  • 库存可以唯一地标记,然后包含在上面的级别中,即在唯一的框中包含唯一的项目。或直接放置在独特托盘上的独特物品
  • 这就是我所想的,但是我不确定“QuantityOfUnditifyableInners”,但是我不知道有什么更好的方法来建模一个系统,这个系统可能唯一地识别它的实体,也可能不唯一地识别它的实体,所以如果有人能找到解决这个问题的替代方法,那么任何关于这个问题的建议都将是非常感谢的

    /// <summary>
    /// ValueObject
    /// </summary>
    public sealed class StockIdentity
    {
        private readonly string _serial;
    
        public StockIdentity(string serial)
        {
            _serial = serial;
        }
    
        public string Serial { get { return _serial; } }
    
        //...equals contract
    }
    
    /// <summary>
    /// Entity
    /// </summary>
    public sealed class StockItem
    {
        public StockIdentity Id { get; set; }
        public int QuantityOfNonIdentifiableInners { get; set; }
        public StockItem[] Identifiable { get; set; }
    }
    
    //
    ///估价对象
    /// 
    公共密封类股票识别码
    {
    专用只读字符串_串行;
    public StockIdentity(字符串序列)
    {
    _串行=串行;
    }
    公共字符串序列{get{return{u Serial;}}
    //…等于合同
    }
    /// 
    ///实体
    /// 
    公共密封类库存物品
    {
    public StockIdentity Id{get;set;}
    无法识别的公共整数数量{get;set;}
    public StockItem[]可识别{get;set;}
    }
    
    这里有一个想法:你为什么需要这个数量?它在您的域模型中是必要的,还是仅仅是属于您的read模型的东西

    如果是的话,我会假设数量是你需要验证所有物品是否还在的东西,所以我会假设你会这样称呼它

     ItemCount
    
    我假设领域专家不会说“嘿,对于每个标签,我们都有一些不可识别的内部内容”,但可能会说“稍后,我们计算项目以确保所有内容都在那里”

    当领域专家知道他们的话将被用作实现软件的基准时,他们往往非常——甚至太多——意识到他们所说的话,所以他们倾向于说得更正式

    当你问一个附带问题时,他们通常不再关心他们的正式语言,然后他们开始说他们“真正的”领域语言;它以一种非常微妙的方式发生,有时很难注意到,但这通常是价值所在的部分


    YMMV.

    这里有一个想法:你为什么需要这个数量?它在您的域模型中是必要的,还是仅仅是属于您的read模型的东西

    如果是的话,我会假设数量是你需要验证所有物品是否还在的东西,所以我会假设你会这样称呼它

     ItemCount
    
    我假设领域专家不会说“嘿,对于每个标签,我们都有一些不可识别的内部内容”,但可能会说“稍后,我们计算项目以确保所有内容都在那里”

    当领域专家知道他们的话将被用作实现软件的基准时,他们往往非常——甚至太多——意识到他们所说的话,所以他们倾向于说得更正式

    当你问一个附带问题时,他们通常不再关心他们的正式语言,然后他们开始说他们“真正的”领域语言;它以一种非常微妙的方式发生,有时很难注意到,但这通常是价值所在的部分


    YMMV.

    我认为这将在很大程度上取决于域名。股票是一件有趣的事。不是所有的东西都有序列号。您可以使用一些
    UnitOfMeasure
    /
    UnitOfIssue
    以及它们之间的转换表来解决大多数问题。您能否提供有关该领域的更多详细信息,以及您试图实现的目标和您的问题是什么?我不能谈论你提出的设计的有效性,因为我不确定它将如何使用。我认为这将在很大程度上取决于领域。股票是一件有趣的事。不是所有的东西都有序列号。您可以使用一些
    UnitOfMeasure
    /
    UnitOfIssue
    以及它们之间的转换表来解决大多数问题。您能否提供有关该领域的更多详细信息,以及您试图实现的目标和您的问题是什么?我不能谈论你提议的设计的有效性,因为我不确定它将如何使用。