服务和存储库层的责任
只是在将对象保存到持久性存储时,试图让我的头部围绕服务层和存储库层的职责。
我目前的立场是这样的:
在我的控制器中,我从用户提交的数据(从表单)创建了一个“Note”对象。 然后用户在“NoteService”(通过依赖注入)中调用“Save”。
在“NoteService”的“Save”方法中,我执行业务逻辑验证,然后将“Note”对象传递给“NoteRepository”的“Save”方法。
然后,“NoteRepository”的“Save”方法检查该对象上是否存在主键,如果是,则从db中获取该对象,并使用通过的“Note”对象更新其属性,然后保存回到数据库。 如果没有主键,则该对象将简单地保存到数据库,然后使用新创建的主键返回到服务。
你对问题的分离对我来说听起来很不错。 我们遵循相同的模式,但倾向于在存储库层上再增加一个图层。 我们称之为领域层,并在那里执行我们所有的业务逻辑。 我们的服务层只是传递给我们的域名,以防将来我们的任何服务发布到ESB。
你所做的最大的好处并不在于混淆了很多人倾向于做的控制器中的所有业务和数据库逻辑。 如果你真的想遵循MVC,你总是希望你的控制器尽可能轻。
链接地址: http://www.djcxy.com/p/46297.html上一篇: Responsibilities of Service and Repository layers
下一篇: strange messages in log file @^@^@^@^@^@^@^@^@^@^@^@^@^@^@^