![]() |
1
1
域模型是与域相关的数据它可以来自任何来源,也可以是单向的(例如,只计算和持久化,从不回读)数据库只是一种域数据持久化策略。 所以是的,来自不同地方的数据可能是域模型的一部分。 就我个人而言,我认为消息更像一个视图模型实体,而表示特定消息需求的状态可以在域模型中在invite的情况下,我会说消息流到一个服务,因此成为域数据——最终传递给另一个用户,我想成为与另一个用户相关的域数据(比如说使用其他视图模型显示)。 |
![]() |
2
1
这要看情况。 如果这些类表示来自不同表的数据、处理数据、做出决策和编排操作的组合,那么我会将它们视为业务级实体,并将它们保留在业务层中。 如果他们是帮手,那就要看情况了。 补充:在阅读了关于这些类的额外信息之后,我认为它们中的许多应该在您的业务逻辑中占有适当的位置。您可能希望在域模型和业务逻辑之间划一条线。我认为您认为域模型只包含数据库映射类,这很好但是,还有业务规则、工人类,它们接受用户输入、处理用户输入、做出决策并调用必要的操作来执行用户输入这些 能够 包括向数据库中添加内容、发送电子邮件通知、启动计划程序任务、通知其他服务等。对于许多操作,它们的结果只会在数据库中远程反映,某些值可能会更改,但不像完整的业务对象状态直接进入数据库。因此,将它们放在一个专用层中是有意义的。 另一种选择是将这些类的逻辑放入存储过程,从而将其持久化到数据库中。不合适的东西可能会被归为助手。 对于“StatusMessage”,可能不需要单独的类消息属于视图级别类可以决定显示哪个消息,但是实际的显示工作将在离ui更近的地方进行。 |