POCO最佳实践
所有,我有一系列域对象(项目是基于NHibernate的)。 目前按照“良好做法”,它们仅定义业务对象,包括特定于域内每个对象功能的属性和方法。 但是,其中一个对象需要发送SMTP邮件。 我在一个单独的“实用程序”程序集中定义了一个简单的SMTP客户端类。 为了在POCO中使用这个邮件客户端,我需要持有对该域中的实用程序集的引用。 我的问题是......这是否违背了在POCO中持有这种参考的最佳做法,以获得必要的业务功能。
亲切的问候
保罗·J
代码抽象并使用依赖注入以避免引用。
public class PocoObject{
public PocoObject(IMailSender mailSender){
_mailSender=mailSender;
}
public void DoStuff(){
mailSender.Send(to,content,blabla);
}
}
但发送类型a的邮件不适合域。 这似乎更像是应用程序服务。
它是。 发送SMTP邮件听起来更像是业务规则,而不是业务对象的责任。 您的业务对象是一个POCO,在大多数情况下,这意味着只有数据并且没有行为。 正如Arnis L.提到最好在系统中有一个管理消息发送作业的服务。
链接地址: http://www.djcxy.com/p/34499.html上一篇: POCO Best Practice
下一篇: What does POCO mean?