域实体上的事件?

时间:2012-08-21 06:09:09

标签: c# events dns

我只是想与我的想法讨论利弊。

我已经接管了一个ASP.NET解决方案,其中大部分逻辑都放在UserControls中,后面还有代码。我正在尝试重构这个,因为引入了新功能,现在我正面临一个新问题。

目前邮件警报是在后面的代码中发送的,但我正在考虑将其移到单独的类中。这就是我的想法:

向域类添加静态事件,即。 BookingAccepted,BookingRejected等等。然后使用一个负责发送电子邮件的类来挂钩这些事件。

这意味着向域实体添加事件。这是一个好主意还是坏主意?为什么?

2 个答案:

答案 0 :(得分:1)

域事件机制是一个好主意。但实现可能会有所不同,静态通常不是最佳方式。我喜欢Udi Dahan的想法,请看blog post

答案 1 :(得分:1)

发送电子邮件通知看起来像基础设施。因此,我将这个逻辑移到了应用程序/域服务(同一个地方,你在那里与存储库交谈,做日志记录等)。您没有通过域对象实现INotifyPropertyChanged来进行日志记录和持久化。与发送电子邮件相同。