服务层和仓库层的职责

9
只是试图理解服务层和仓库层在将对象保存到持久化存储时的职责。
我目前的理解是这样的:
在我的控制器中,我从用户提交的数据(来自表单)创建了一个“Note”对象。然后,用户通过依赖注入调用“NoteService”的“Save”。
在“NoteService”的“Save”方法中,我进行业务逻辑验证,然后将“Note”对象传递给“NoteRepository”的“Save”方法。
“NoteRepository”的“Save”方法然后检查是否存在此对象的现有主键,如果存在,则从数据库获取该对象并使用传递的“Note”对象更新其属性,然后将其保存回数据库。 如果没有主键,则仅将对象保存到数据库,并将其带有新创建的主键返回到服务。

我认为你说的很好,问题是什么? - uvita
我的问题基本上是这样做的方式,即这是正确的模式/工作流程吗? - Gaz
1个回答

4
您的关注点分离听起来非常不错。我们遵循相同的模式,但在存储库层之上通常会添加另一层。我们称之为领域层,并在其中执行所有业务逻辑。我们的服务层只是一个通道,以防将来需要发布任何服务到ESB。
您所做的最大好处是不会在控制器中混杂所有业务和数据库逻辑,这是很多人倾向于做的。如果您真的想遵循MVC,您总是希望使控制器尽可能轻量级。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接