а ети правила можно закинуть в Specification
if (favoriteCustomerSpecification.IsSatisfiesBy(customer))
{
// здесь вычитаем 15%
}
...В случаи когда нам понадобиться добавить новый Item для Order, то мы просто добавим Item с ключем от Order в базу напрямую(без order.AddItem(item)).
На мой взгляд это презентационные паттерны, везде есть буква V, которая означает View, т.е. представление для пользователя. Ну так если мы уберем UI, то разве у нас пострадает архитектура приложения? Ведь UI это только клиент приложения!