Domain driven design 一个具有非参数的递归股票系统的建模-
我试图建立一个业务领域的模型,该领域生产的股票实际上有一个复杂的递归股票系统Domain driven design 一个具有非参数的递归股票系统的建模-,domain-driven-design,Domain Driven Design,我试图建立一个业务领域的模型,该领域生产的股票实际上有一个复杂的递归股票系统 库存可以在项目级别进行唯一标记,或者 库存可以在包装箱级别进行唯一标记(包含许多无法识别的项目),或者 可以在托盘级别(包含许多无法识别的箱子)标记库存,或者 库存可以唯一地标记,然后包含在上面的级别中,即在唯一的框中包含唯一的项目。或直接放置在独特托盘上的独特物品 这就是我所想的,但是我不确定“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
以及它们之间的转换表来解决大多数问题。您能否提供有关该领域的更多详细信息,以及您试图实现的目标和您的问题是什么?我不能谈论你提议的设计的有效性,因为我不确定它将如何使用。