9

在将对象保存到我的持久性存储时,只是想了解服务层和存储库层的职责。

我目前的理解是这样的:

在我的控制器中,我根据用户提交的数据(来自表单)创建了一个“Note”对象。然后用户在“NoteService”(通过依赖注入存在)上调用“Save”。

在“NoteService”的“Save”方法中,我执行我的业务逻辑验证,然后将“Note”对象传递给“NoteRepository”的“Save”方法。

“NoteRepository”的“Save”方法然后检查该对象上是否存在现有主键,如果有,则从数据库中获取该对象并使用传递的“Note”对象更新其属性,然后保存回到数据库。如果没有主键,那么对象只是保存到数据库中,然后使用新创建的主键返回到服务。

4

1 回答 1

4

您的关注点分离对我来说听起来不错。我们遵循相同的模式,但倾向于在存储库层的基础上再添加一层。我们称之为领域层并在那里执行我们所有的业务逻辑。我们的服务层只是到我们域的一个通道,以防我们将来需要将我们的任何服务发布到 ESB。

您所做的最大好处是不会像很多人倾向于做的那样在控制器中弄乱所有业务和数据库逻辑。如果你真的想遵循 MVC,你总是希望你的控制器尽可能轻。

于 2010-06-14T17:14:05.590 回答