Mvc服务模式最佳实践

时间:2018-01-14 00:02:23

标签: asp.net asp.net-mvc asp.net-core-mvc

所以我在想什么是实现这一目标的最佳方法。

我的mvc应用程序的域层中有2个服务。这些服务负责业务逻辑验证。所以,让我们说在第一个服务(我们称之为产品服务)中我们有这个:

public bool save(viewmodel vm)
{
    Validate(vm)
    if (!vm.hasErrors)
    {
        //map the viewmodel to the model and save
        return repo.save(vm)
    }
    return false;
}

现在当我在第二个服务中保存时,我想保存一个产品对象。

实现这一目标的最佳方式是什么?

1)第二个服务是否应该拨打第一个服务? (如果是,我应该依赖将它注入第二个)

2)控制器是否应注入这两项服务并正确使用?

我实际上喜欢第一个解决方案(除非有另一个解决方案),这是因为我想让控制器完全没有业务逻辑。

您怎么看?

1 个答案:

答案 0 :(得分:1)

考虑关注点的分离,您将使用第二个选项:

  • 产品服务负责产品验证/保存
  • 任何其他服务都有自己的责任,但不关心产品
  • 您的控制器负责保存产品+其他东西,这是需要知道(注入)您的服务的人