При таком типе архитектуры лучше всего создавать Interactors, которые содержат всю бизнес-логику. Таким образом, ваши модели домена (например, Пользователь) могут быть очень легкими.
Существует два распространенных способа создания Interactors. Один из способов - создать объект службы. Услуга может предлагать все варианты использования и выполнять всю бизнес-логику. Этот подход работает лучше для простых моделей домена и для малых/средних приложений.
Service Interactor Пример:
public class UserService
{
public void ChangeUsername(User user, string name)
{
... business logic ...
}
}
Другой распространенный способ инкапсулировать бизнес-логику, чтобы создать объект за прецедент. Всякий раз, когда вы добавляете новую операцию, просто создайте новый класс. Это требует большей начальной работы и лучшего понимания архитектуры предприятия, но приводит к очень масштабируемому решению.
Use Case Interactor Пример:
public class ChangeUsernameOperation
{
public void ChangeUsernameOperation(User user, string name)
{
... business logic ...
}
}
* Я использую мои бизнес-объекты для создания dbSets на моем DbContext * ERM ... что? Вам лучше показать один пример кода в коде. Этот вопрос никогда не будет работать только со словами. –