Architecture 需要Web应用程序层帮助吗

Architecture 需要Web应用程序层帮助吗,architecture,Architecture,我试图弄清楚web应用程序需要哪些层才能实现可靠的关注点分离。 我正在处理中大型应用程序,这些应用程序的实体经常相互交互 到目前为止,我有以下几点 实体层-为业务实体建模,并在整个应用程序中使用 存储库层—处理持久性以及与数据库之间的所有调用 服务层-处理业务需求 控制器层-处理请求并仅调用服务 视图层 此外,每个实体都有一个专用存储库和一个专用服务 我的问题如下: 如果一个实体服务引用另一个实体服务,或者应该有一个新的服务未绑定到使用实体服务的实体,这可以吗?(这是一个更广泛的问题:层之间的交

我试图弄清楚web应用程序需要哪些层才能实现可靠的关注点分离。 我正在处理中大型应用程序,这些应用程序的实体经常相互交互

到目前为止,我有以下几点

  • 实体层-为业务实体建模,并在整个应用程序中使用

  • 存储库层—处理持久性以及与数据库之间的所有调用

  • 服务层-处理业务需求

  • 控制器层-处理请求并仅调用服务

  • 视图层

  • 此外,每个实体都有一个专用存储库和一个专用服务

    我的问题如下:

  • 如果一个实体服务引用另一个实体服务,或者应该有一个新的服务未绑定到使用实体服务的实体,这可以吗?(这是一个更广泛的问题:层之间的交互是什么)

  • 在存储库和服务之间是否应该有另一层,如管理器(专用于实体,包含属于该实体的业务逻辑,就像原始设置中的服务一样,但只使用其他服务)和引用管理器层的服务层?(tbh这听起来太复杂了,但如果有人对管理层和服务层有争议,请告诉我)

  • 视图层应该访问控制器引用的服务吗?(为了检索一些列表,或者视图需要的所有信息应该由控制器提供

  • 多谢各位

    附言:在阅读答案时,我可能会问更多的问题,如果我认为这些问题很重要,我会更新主要帖子。 PS2:如果你能分享关于这个问题的个人经验,我将不胜感激

  • 我想说是的,一个服务可以与其他服务协作
  • 不,这是不必要的过度复杂化
  • 控制器实际上是视图的一部分;二者相辅相成。视图可能调用服务,特别是在使用AJAX调用web UI时