域驱动设计 – 何时更新审计字段? DDD

我有一个会议对象:

会议{id,name,time,CreatedBy,UpdatedBy}

和a

MeetingAssignee {id,MeetingID,EmployeeId,UpdatedBy)

Meeting,作为Aggregate root,有一个方法AssignEmployee.

当我调用AssignEmployee时,我正要将当前用户传递给Meeting对象,以便它可以相应地更新其审计字段.

但这似乎不对 – 是吗?显然,我可以公开审计字段并在以后更改它们 – 也许是在服务级别?

什么是每个人更新这些字段的首选方法

请注意:我们没有使用Nhibernate,而是一个自定义的ORM,没有任何自动化的东西.

谢谢.

解决方法

审计和日志记录很有趣,因为它们通常在应用程序的任何地方都需要,并且它们都是要求(日志记录是OPs人员的要求).

在不了解您的模型的情况下,由于审计必须是一项要求,我会将当前用户传递给AssignEmployee,而不是在那里有一条说明AuditBlahBlahBlah的行,我会添加一个事件(也许是MeetingUpdated或AssigneeAdded …你会找到一个好名字)并将该事件分派给执行审计的类.通过这种方式,Meeting类没有关于审计和调度业务事件的线索,以用于审计目的(在我看来,这是非常DDdish).

我想知道其他人会怎么说(希望我能学到新东西!)

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...