有人使用域驱动设计技术吗?我最近阅读了埃里克·埃文斯(Eric Evans)的同名书(其中大部分是这样的),并且有兴趣听到任何在项目中实现全部/部分内容的人(特别是在C#/ C中)
我已经把这个问题开放了,我想尽可能多地看到意见,但我有几个问题:
1 – 如果语言支持,值类型是真实的“值类型”吗?例如C#中的一个结构
2- C#中有什么功能可以使语言和模型之间的关联更加清晰(例如,这是一个实体,这是一个聚合等)
解决方法
是!我在项目中使用DDD(但是
I’m biased!)
请记住,域驱动设计提供了准则,而不是严格的答案.只有经过实验,您才能了解哪些方面适用于您的具体项目.
在你的问题:
1 – 您可以使用结构体,但可能存在阻止您使用它们的技术限制.例如,您可能有实体引用数千个具有相同值的值对象.在这种情况下,最好使用一个flyweight对象来保持内存使用率下降.
2 – 我建议使用界面(例如IEntity,IValueObject,IAggregateRoot,ISpecification).泛型和LINQ可以帮助协助技术问题,但从设计的角度来看,它们的帮助不大.
我创建了一个专门针对DDD的[免费的.NET库] [2],可能会从中找到想法/灵感. [阅读更多关于这里.] [3](项目已经死了)
我真的很感兴趣:你认为DDD的哪些方面会对你有所帮助? “领域驱动”方面,还是实施方面?