Domain driven design 在DDD中添加到无处不在的语言?
我用UML(在纸上)快速定义了我的领域模型,当我开始测试驱动功能时,重构使我得到了一些小类,它们不代表我的领域中的概念,但这些类很好地封装了所需的职责 例如,我从一台拥有多个许可证的机器开始(机器-->*许可证)。我从方法Add(licenseType)和remove(licenseType)开始,它们增加或减少列表中相应的许可证对象(即许可证有一个licenseType和该类型许可证数量的计数器) 机器有其他关联和行为,所以我创建了一个LicenseTypeManager,其中我现在有机器-->1个LicenseTypeManager-->*许可证 我将Machine作为聚合根,将LicenseTypeManager作为值对象,将License作为值对象 现在,LicenseTypeManager是我在重构时创建的,根本没有被提及,也不是应用程序中无处不在的语言的一部分。它可以存在吗 换言之,使用UL建模,然后找到可能有助于更清楚地解释该领域的其他术语,这样做好吗 此外,我开始认为LicenseTypeManager可能是一个域服务,但随后我开始担心我可能会创建一个贫乏的模型(尽管模型中仍然有很多逻辑)。因此,我的下一个问题是,它应该是一个域服务,还是应该保持不变Domain driven design 在DDD中添加到无处不在的语言?,domain-driven-design,Domain Driven Design,我用UML(在纸上)快速定义了我的领域模型,当我开始测试驱动功能时,重构使我得到了一些小类,它们不代表我的领域中的概念,但这些类很好地封装了所需的职责 例如,我从一台拥有多个许可证的机器开始(机器-->*许可证)。我从方法Add(licenseType)和remove(licenseType)开始,它们增加或减少列表中相应的许可证对象(即许可证有一个licenseType和该类型许可证数量的计数器) 机器有其他关联和行为,所以我创建了一个LicenseTypeManager,其中我现在有机器--
JD是什么导致了无处不在的语言的丰富并不重要。但重要的是它无处不在 所以-如果你对你的领域进行建模并找出新的术语来简化理解,那么只要领域专家理解它们,已经使用或开始使用它们,就没有问题 假设你在卖汽车,却对编程一无所知。
cartypemanager
对您有意义吗?不大可能发生的它也不应该存在于域中
在我看来:-您不了解聚合根、实体和值对象之间的区别
-你缺乏知识(因此你通过引入“管理者”来寻求救赎)是什么导致无处不在的语言变得丰富并不重要。但重要的是它无处不在 所以-如果你对你的领域进行建模并找出新的术语来简化理解,那么只要领域专家理解它们,已经使用或开始使用它们,就没有问题 假设你在卖汽车,却对编程一无所知。
cartypemanager
对您有意义吗?不大可能发生的它也不应该存在于域中
在我看来:-您不了解聚合根、实体和值对象之间的区别
-您缺乏相关知识(因此您通过引入“经理人”寻求赎回)2截止目前为止。请告知我为什么以及如何避免它被关闭?目前它有两个接近投票:第一个是“非主题”,第二个是“非建设性”。此外,DDD处于“灰色区域”。它非常抽象,介于现实问题和软件工程之间。对于一个不熟悉DDD想法的人来说,这个问题听起来可能像是一个荒谬的胡言乱语。2到目前为止已经结束了。请告知我为什么以及如何避免它被关闭?目前它有两个接近投票:第一个是“非主题”,第二个是“非建设性”。此外,DDD处于“灰色区域”。它非常抽象,介于现实问题和软件工程之间。对于一个不熟悉DDD想法的人来说,这个问题听起来像是一个荒谬的胡言乱语。