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?