【发布时间】:2011-09-09 03:24:18
【问题描述】:
我试图弄清楚 Web 应用程序需要哪些层才能实现可靠的关注点分离。 我正在处理具有经常相互交互的实体的大中型应用程序。
到目前为止,我有以下内容
实体层 - 对业务实体进行建模并在整个应用程序中使用
存储库层 - 处理持久性以及对数据库的所有调用
服务层 - 处理业务需求
控制器层 - 处理请求并仅调用服务
视图层
此外,每个实体都有一个专用的存储库和一个专用的服务
我的问题如下:
如果一个实体服务引用另一个实体服务是否可以,或者是否应该有一个新服务不绑定到使用实体服务的实体?(这是一个更广泛的问题:层之间的交互是什么)
存储库和服务之间是否应该有另一个层,例如管理器(专用于一个实体,包含与该实体相关的业务逻辑,就像原始设置中的服务一样,但只使用但其他服务)和引用管理层的服务层?(这听起来过于复杂,但如果有人对管理层和服务层有一些争论,请告诉我)
视图层是否应该有权访问控制器引用的服务?(为了检索一些列表,还是应该由控制器提供视图所需的所有信息?
谢谢
PS:我可能会在阅读答案时提出更多问题,如果我认为它们很重要,我会更新主帖。 PS2:如果您能分享有关此问题的任何个人经验,我将不胜感激。
【问题讨论】:
标签: architecture