我有一个负责发送电子邮件的对象,所以我创建了一个EmailSender
,然后告诉它SendEmail
,传入一些EmailDetails
:
string diagnostics;
EmailSender sender = new EmailSender();
try
{
sender.SendEmail(details);
//sender.SendEmail(details, out diagnostics);
}
catch(Exception e)
{
logger.log(sender.CurrentError);
}
diagnostics = sender.Diagnostics;
如果我向 中添加一个 out 参数SendEmail
,这是否会增加 SOLID 设计原则方面的业务责任,因为我现在说:“您必须尝试发送电子邮件,并且您还负责初始化和填充诊断数据”
也许责任不是正确的词,但是一种模式比另一种更好吗?