Pio*_*zan 8 domain-driven-design
人们常说DDD(域驱动设计)更适合复杂域而不是简单域.
复杂域名的特征是什么?(请比"它有复杂的业务规则"更具体);
哪些是复杂域名的例子?
如何将域分类为复杂(即适用于DDD)?
根据我的经验3,使您的域名变得复杂的最重要的事情是:
尺寸
大域往往会增加复杂性.处理和协调很多事情总是很难.
规则和不变量
域(即使只有几个有界上下文的域)可能在其用例和过程中有很多域规则和不变量和/或很多细微差别.这增加了复杂性.垃圾邮件实体或域间事件中的大量更改的规则通常是复杂的业务规则.
上下文
语境复杂性很难用一个例子来解释.让我们在表中列出与名为的实体相关的上下文复杂性Product.
根据具体情况; 实体可能意味着您域中的不同内容.一个Product实体不意味着工厂方面,营销方面,销售方面,售后支持上下文等相同
如果与Product实体相关的数据,用户案例,流程,行为等在每个上下文中都非常不同,那么即使您只有少量的上下文和实体,复杂性也会增加很多.这通常意味着您有许多Product实体(每个上下文中有一个),即使所有实体都由同一个持久性存储支持(在ER存储的情况下,相同的表).