私は電子メールの送信を担当するオブジェクトを持っているので、を作成し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設計原則の観点からビジネス上の責任が追加されますか?
おそらく責任は正しい言葉ではありませんが、一方のパターンはもう一方のパターンよりも優れていますか?