Отправка электронной почты по отводу


Требования:

Если поле менеджер книжного магазина меняется от A до B, мне нужно написать человеку B, говоря, что новый книжный магазин был отведен к нему, и он был вынужден совершить определенные действия.

private void SendEmailToAllottedManager()
{
   EmailExpress mEmailExpress = new EmailExpress();
   mEmailExpress.SendEmail(Shop.Bookstore.BookstoreName, Subject);
}

В методе, где я призываю SendEmailToAllottedManager, я проверяю, если менеджер действительно изменилась или не как ниже:

if (OriginalManager != CurrentManager)
{
    SendEmailToAllottedManager();
}

В ходе анализа кода, коллега предложил мне перенести проверку из-за пределов функции SendEmailToAllottedManager() , чтобы внутри него:

Предлагаемый Код

private void SendEmailToAllottedManager()
{
    if (OriginalManager != CurrentManager)
    {
          EmailExpress mEmailExpress = new EmailExpress();
          mEmailExpress.SendEmail(Shop.Bookstore.BookstoreName, Subject);
    }

}

Я утверждаю мою позицию, что функция SendEmailToAllottedManager только об отправке, а не о выполнении проверок и т. д.

Что вы думаете?



190
2
c#
задан 15 июля 2011 в 10:07 Источник Поделиться
Комментарии
2 ответа

Я бы сказал, что на самом деле отправка электронной почты является частью процесса смены менеджер магазина. Это часть бизнес-логики (насколько мне известно), что когда магазин меняет менеджер, новый менеджер должен будет сообщено, между прочим.

Поэтому проверить, если менеджер меняет-это не работа для отправителя электронной почты. Электронная почта отправителя должна быть утилита, которая может быть повторно использована.

3
ответ дан 15 июля 2011 в 07:07 Источник Поделиться

Я с вами согласен. Выполняемые действия метод должен соответствовать своему названию. В предложение вашего коллеги, письмо было отправлено на отведенное менеджер, как вы уже отметили, не всегда доводится и так не на 100% семантически точным.

Однако, ради удобства чтения, иногда это может быть легче надевать если-то проверить в тот же метод, особенно если у вас много если-то проверки. Но тогда вы, возможно, захотите рассмотреть возможность сделать некоторые рефакторинга, если она становится слишком раздутым. Это всегда трудно знать, где провести черту.

Интересный вопрос! Я смотрю вперед к видеть другие мысли.

1
ответ дан 15 июля 2011 в 11:07 Источник Поделиться