通常如何在 MVC 架构中实现服务层?它是一个为底层业务对象提供所有请求的对象吗?或者更像是一个为不同服务对象提供服务的对象,而这些服务对象又与业务对象进行交互?

所以:

  1. 控制器 -> 服务 -> getUserById(),或者:

  2. 控制器 -> ServiceManager -> getUserService() -> getUserById()

另外,如果后者更合适,您会在引导程序中配置此 ServiceManager 对象吗?换句话说,在引导程序中将应用程序所需的不同服务注册到服务管理器?

如果以上都不合适,什么可以帮助我更好地理解服务层应该如何实现?

先感谢您。

有帮助吗?

解决方案

我读这个问题的方式,确实有两件事应该回答:

A)我更喜欢将“Service”拆分为“CustomerService”和“OrderService”,换句话说,按领域概念分组。

B) 其次,我会使用依赖注入直接在需要的地方获取正确的服务,所以我基本上使用替代方案 1。替代方案 2 中添加的抽象对我来说没有提供任何附加价值,因为 IoC 容器完成了重要的部分。

其他提示

我个人更喜欢#2,是的,它通常会在引导程序中配置,或者使用某种 IoC 容器来解决依赖关系,为您提供实际的具体实例。

我也想发表评论,是的,我明白这可能更多是个人偏好。尽量避免对这些对象使用名称“Service”层。将它们称为存储库或其他东西。如果您使用服务,该术语就会变得过载......因为开发人员会说,“你的意思是休息还是 WCF 服务?”。相信我,我们在最近的一个项目中做到了这一点,当我们谈论在哪里进行代码更改时,我们总是感到困惑:-P

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top