13

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

所以:

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

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

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

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

先感谢您。

4

3 回答 3

4

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

A)我更喜欢将“服务”拆分为“客户服务”和“订单服务”,换句话说,按领域概念分组。

B)其次,我会使用依赖注入直接在需要的地方获得正确的服务,所以我基本上使用替代 1。替代 2 中添加的抽象对我没有额外的价值,因为 IoC 容器做了重要的部分.

于 2009-08-29T19:03:12.613 回答
3

使用“门面”是一种方法:

“外观是一个对象,它为更大的代码体提供简化的接口”

于 2009-08-29T19:29:47.367 回答
2

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

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

于 2009-08-29T18:35:55.947 回答