模型或控制器是否应负责发送电子邮件?

时间:2010-09-22 00:56:04

标签: model-view-controller

在MVC网络应用程序中,我经常发送电子邮件。

我通常在控制器中执行此操作,因为我从控制器加载了所有视图(包括电子邮件视图)。

但是,现在,我有一些电子邮件从模型发送的代码。

通常从哪个层发送电子邮件?有关系吗? 需要是否一致?

1 个答案:

答案 0 :(得分:16)

理想情况下,控制器应该像将视图连接到模型的运算符。这属于模型或服务层。

我认为只有当你有一个单独负责发送电子邮件的模型对象时,它才属于模型层。您不希望将表示和逻辑混合在一起,这是模型 - 视图 - 控制器中关注点分离的全部要点。

此类逻辑应位于服务层中。然后,您可以使用依赖注入将服务注入控制器并调用EmailSenderService.sendEmail();