Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Domain driven design 在DDD中添加到无处不在的语言?_Domain Driven Design - Fatal编程技术网

Domain driven design 在DDD中添加到无处不在的语言?

Domain driven design 在DDD中添加到无处不在的语言?,domain-driven-design,Domain Driven Design,我用UML(在纸上)快速定义了我的领域模型,当我开始测试驱动功能时,重构使我得到了一些小类,它们不代表我的领域中的概念,但这些类很好地封装了所需的职责 例如,我从一台拥有多个许可证的机器开始(机器-->*许可证)。我从方法Add(licenseType)和remove(licenseType)开始,它们增加或减少列表中相应的许可证对象(即许可证有一个licenseType和该类型许可证数量的计数器) 机器有其他关联和行为,所以我创建了一个LicenseTypeManager,其中我现在有机器--

我用UML(在纸上)快速定义了我的领域模型,当我开始测试驱动功能时,重构使我得到了一些小类,它们不代表我的领域中的概念,但这些类很好地封装了所需的职责

例如,我从一台拥有多个许可证的机器开始(机器-->*许可证)。我从方法Add(licenseType)和remove(licenseType)开始,它们增加或减少列表中相应的许可证对象(即许可证有一个licenseType和该类型许可证数量的计数器)

机器有其他关联和行为,所以我创建了一个LicenseTypeManager,其中我现在有机器-->1个LicenseTypeManager-->*许可证

我将Machine作为聚合根,将LicenseTypeManager作为值对象,将License作为值对象

现在,LicenseTypeManager是我在重构时创建的,根本没有被提及,也不是应用程序中无处不在的语言的一部分。它可以存在吗

换言之,使用UL建模,然后找到可能有助于更清楚地解释该领域的其他术语,这样做好吗

此外,我开始认为LicenseTypeManager可能是一个域服务,但随后我开始担心我可能会创建一个贫乏的模型(尽管模型中仍然有很多逻辑)。因此,我的下一个问题是,它应该是一个域服务,还是应该保持不变


JD

是什么导致了无处不在的语言的丰富并不重要。但重要的是它无处不在

所以-如果你对你的领域进行建模并找出新的术语来简化理解,那么只要领域专家理解它们,已经使用或开始使用它们,就没有问题

假设你在卖汽车,却对编程一无所知。
cartypemanager
对您有意义吗?不大可能发生的它也不应该存在于域中

在我看来:
-您不了解聚合根、实体和值对象之间的区别

-你缺乏知识(因此你通过引入“管理者”来寻求救赎)

是什么导致无处不在的语言变得丰富并不重要。但重要的是它无处不在

所以-如果你对你的领域进行建模并找出新的术语来简化理解,那么只要领域专家理解它们,已经使用或开始使用它们,就没有问题

假设你在卖汽车,却对编程一无所知。
cartypemanager
对您有意义吗?不大可能发生的它也不应该存在于域中

在我看来:
-您不了解聚合根、实体和值对象之间的区别

-您缺乏相关知识(因此您通过引入“经理人”寻求赎回)

2截止目前为止。请告知我为什么以及如何避免它被关闭?目前它有两个接近投票:第一个是“非主题”,第二个是“非建设性”。此外,DDD处于“灰色区域”。它非常抽象,介于现实问题和软件工程之间。对于一个不熟悉DDD想法的人来说,这个问题听起来可能像是一个荒谬的胡言乱语。2到目前为止已经结束了。请告知我为什么以及如何避免它被关闭?目前它有两个接近投票:第一个是“非主题”,第二个是“非建设性”。此外,DDD处于“灰色区域”。它非常抽象,介于现实问题和软件工程之间。对于一个不熟悉DDD想法的人来说,这个问题听起来像是一个荒谬的胡言乱语。