Seb*_*n K 6 c# oop domain-driven-design ddd-repositories
有时在处理应用程序时,特别是在尝试遵循正确的OOD和DDD模式时,我们最终会使用域类,例如Customer.然后我们有一些存储库将加载这个对象,一切都很好,干净.
然后应用程序变得越来越复杂,我们开始优化性能.我们经常发现自己处于这样的情况,我们并不真正需要加载完整Customer对象的列表,但可能只是ID和名称,或者一小部分属性(例如,在网格中显示)
我经常看到的解决方案包括:
欠载域对象,所以基本上我们仍然会使用Customer类,但是我们将使用单独的存储库方法来加载那些,并且该存储库方法将从数据库仅加载必需的字段,并填充对象中的相应属性.剩余的Customer字段将保持默认值.这是一个简单的解决方案,但如果开发人员(或现有代码)希望加载某些属性,则可能导致许多错误.
目的,分级,我们创建类,如CustomerIdName,CustomerInfo,CustomerHeader只包含我们需要的属性.这种方法可以创建大量的类,但仔细的子类化是可行的.但它似乎从无处不在的领域语言概念中解脱出来.
那么在DDD世界中是否有一些普遍认同的惯例来处理这些问题?我试图谷歌这个,但无法找到任何权威.
或者它可能只是传统DDD方法的一个众所周知的限制,而CQRS或其他方法在这些情况下会更好?