MVCS – 模型视图控制器服务

我一直在使用MVC很长一段时间,听说“ 服务 ”层(例如在Java Web项目),我一直想知道,如果这是一个真正的架构模式,因为我无法find大量的信息它。

MVCS的思想是在控制器和模型之间build立一个服务层 ,以封装可能在控制器中的所有业务逻辑。 这样,控制器就在那里转发和控制执行。 而且你可以在许多控制器(例如,一个网站和一个web服务)中调用一个服务,而不需要复制代码。

服务层可以有许多方法,但是通常你拥有核心业务处理逻辑,位于MVC架构之下,但是在数据访问架构之上。

比如你一个完整系统的层可能看起来像这样:

  1. 视图图层:您的MVC框架和select的代码
  2. 服务层:你的控制器将调用这个层的对象来获取或更新模型或其他请求。
  3. 数据访问对象:这些抽象是你的服务层调用来获取/更新它所需要的数据。 该层通常会调用数据库或其他系统(例如:LDAP服务器,Web服务或NoSqltypes的数据库)

服务层将负责:

  • 从各种数据源(或数据访问对象)撤回并创build“模型”。
  • 更新各个存储库/资源的值。
  • 执行应用程序特定的逻辑和操作等

您在MVC中使用的模型可能来自您的服务,也可能不来自您的服务。 你可能想要把你的服务给你的结果,并把它们操作成一个更专用于你的媒体的模型(例如:一个网页)。

我自己一直在想这个模式,而没有看到任何其他地方的任何引用,并search谷歌,并在这里find你的问题:)

即使在今天,也没有太多的机构在讨论或发表有关这个问题

视图 – 控制器服务模式。

在这里输入图像说明

以为让你知道其他人都在想同样的事情,上面的形象是我如何看待它应该如何。

目前我正在使用它在我正在工作的一个项目。

我在模块中有上图中的每个图层,在它自己的模块中。

在这里输入图像说明

服务层是“连接器”,“中间人”,“服务器端控制器”,其中“客户端”控制器为客户端做了什么,“服务”是为服务器做的。

换句话说,客户端“控制器”只与“服务”(也称为服务器端控制器)“谈话”。

控制器—>从<—–服务层请求和接收

服务层获取或提供信息到需要它的服务器端的层。

服务本身并没有做任何事情,只是连接服务器层和他们需要的东西。

这是一个代码示例:

在这里输入图像说明

Interesting Posts