После прочтения этой статьи о проверке с помощью сервисного уровня у меня есть некоторые сомнения.
Во-первых: все ли правильно, чтобы передать весь вид модели в сервис, как показано в статье? Я видел некоторый пример, в котором вместо передачи всей модели, используемой контроллером (например, bool success = _productService.CreateProduct(productModel)
), они называли службы следующим образом:
bool success = _productService.CreateProduct(productModel.Name, productModel.Category, productModel.Cost)
Каковы плюсы / минусы обоих подходов?
Второе: я вижу логику в использовании одного и того же сервиса для проверки модели и выполнения реальной работы. С другой стороны, это означает, что сервису придется иметь дело с двумя проблемами: проверка данных и обработка данных. Это означает, что больше кода в одном сервисе и худшая тестируемость, верно?
Так что вместо приведенного выше примера кода было бы лучше иметь:
bool valid = _productValidationService(productModel);
if(valid){
_productService.CreateProduct(productModel);
//or maybe _productService.CreateProduct(productModel.Name, productModel.Category, productModel.Cost);
}
Какие плюсы / минусы? Есть что-то, чего я не вижу? Что ты используешь ? Что такое стандартный подход?