Я думаю, что у меня есть вопрос любительской архитектуры, но я долго пытался выяснить это.
У меня есть веб-проект на C #, который создает пользователей в нескольких местах, подобных этому.:
var user = /*create user somehow*/;
_userRepository.Add(user);
_userRepository.SaveChanges();
Теперь мне нужно добавить логику, которая отправляет уведомления по электронной почте при каждом создании пользователя:
var user = /*create user somehow*/;
_userRepository.Add(user);
_userRepository.SaveChanges();
_notificationService.SendUserCreatedNotification(user);
Проблема в том, что я не хотел бы добавлять то же самоестрока кода для всех мест, где создается новый пользователь (СУХОЙ!).
Теперь я мог бы обернуть логику Add / Save / SendUserCreatedNotification в отдельный сервис:
var user = /*create user somehow*/;
_userCreationService.AddAndSave(user);
Но:
- цель этого сервисабыть странно логически (добавлять пользователя в репо, сохранять изменения в репо, отправлять уведомления);Я даже не могу придумать хорошее имя для этого сервиса и метода
- Метод сервиса будет иметь только 3 строки кода: Add / Save / SendUserCreatedNotification
Как вы обычнорешать такие задачи?Подход 2 - лучший путь?Или, может быть, существует лучший подход 3?