Mar*_*nof 5 c# oop domain-driven-design
我一直在使用我目前对域驱动设计的理解来构建一个新的应用程序.到目前为止,我有一堆类代表我的域中的实体和一个从/ persist到数据库的存储库.
我遇到的问题是在UI中我需要显示一些列表,其中列表中的项目不直接映射到我的域中的任何实体.某些列表可以通过对某些实体进行相当深入的加载来构建,但是其他数据基本上是在检索时合成的,并且不是任何实体的一部分.让我举一个例子,希望能更清楚地解释问题.
在我的域中,我对这些评估进行了评估(一组要回答的问题)和响应(每个用户为评估提供的答案).我也有行动.每个操作代表一个响应(提交,批准,拒绝等)的操作.我也有用户.
我需要显示的数据列表之一将包括响应和评估(尚未响应),然后每行将包含有关当前正在使用响应的用户的信息(这是在检索时通过查找确定的在对答复采取的行动中).每个订单项还将包含零个或多个子项,这些项目是迄今为止对响应采取的操作.
问题是,到目前为止,我无法用我的域实体表示整个数据集.我的第一反应是从数据库中检索数据表并绕过我的域实体.但是我认为在处理域对象和将不同实体之间的关系融入对象本身时有很多价值.所以我的下一个想法是修改我的域实体以支持这些列表,但我担心我会为我的实体添加奇怪的属性只是为了支持这些列表场景而且我可能会因为基本上深度负载而损害性能当我只在我的应用程序中的几个地方需要这些数据时的对象.
我建议不要将其视为必须硬塞到实体中的东西,而是提供一项服务(用领域驱动设计的说法),其工作是在请求时收集这些数据并将其呈现为视图。这使您不必以笨拙的方式重新设计实体。
问题是,到目前为止,我没有任何方法可以用我的域实体来表示整个数据集。
您在这里感受到的尴尬的设计摩擦是一件好事。这是一个线索,表明事情不太协调。
| 归档时间: |
|
| 查看次数: |
461 次 |
| 最近记录: |