vista software patterns mvc modelo example controlador model-view-controller architecture architectural-patterns

model view controller - software - MVCS-Servicio de controlador de vista de modelo



software architecture patterns (2)

He estado pensando en este patrón yo mismo sin ver ninguna referencia a esto en ningún otro lugar y busqué en Google y encontré tu pregunta aquí :)

Incluso hoy en día no hay mucho cuerpo hablando o publicando sobre el

Patrón de servicio View-Controller.

Pensé en hacerle saber que los demás están pensando lo mismo y la imagen de arriba es cómo veo cómo debería ser.

Actualmente lo estoy usando en un proyecto en el que estoy trabajando ahora.

Lo tengo en los módulos con cada capa en la imagen de arriba con su propio módulo.

La capa Servicios es el "conector" "intermediario" "Controlador del lado del servidor" en lo que hace el Controlador del lado del "cliente" para el cliente, el "Servicio" lo hace para el servidor.

En otras palabras, el "Controlador" del lado del cliente solo "habla" con el "Servicio" también conocido como Controlador del lado del servidor.

Controlador ---> Solicitudes y recepción desde la <----- Capa de servicio

La capa de servicio obtiene o proporciona información a las capas del lado del servidor que lo necesitan.

Por sí solo, el Servicio no hace nada más que conectar las capas del servidor con lo que necesitan.

Aquí hay una muestra de código:

He estado utilizando MVC durante mucho tiempo y escuché acerca de la capa de " Servicio " (por ejemplo, en el proyecto web Java) y me he estado preguntando si ese es un patrón arquitectónico real dado que no puedo encontrar mucha información sobre eso.

La idea de MVCS es tener una capa de servicio entre el controlador y el modelo , para encapsular toda la lógica comercial que podría estar en el controlador. De esta forma, los controladores están allí para reenviar y controlar la ejecución. Y puede llamar a un Servicio en muchos controladores (por ejemplo, un sitio web y un servicio web), sin duplicar el código.


La capa de servicio se puede interpretar de muchas maneras, pero generalmente es donde tiene la lógica de procesamiento de su negocio principal y se ubica debajo de su arquitectura MVC, pero por encima de su arquitectura de acceso a datos.

Por ejemplo, la capa de un sistema completo puede verse así:

  1. Capa de vista: su marco MVC y código de elección
  2. Capa de servicio: su controlador llamará a los objetos de esta capa para obtener o actualizar modelos u otras solicitudes.
  3. Objetos de acceso a datos: son abstracciones a las que llamará su capa de servicio para obtener / actualizar los datos que necesita. En general, esta capa llamará a una Base de datos u otro sistema (por ejemplo: servidor LDAP, servicio web o DB de tipo NoSql)

La capa de servicio sería responsable de:

  • Retirando y creando su ''Modelo'' a partir de varias fuentes de datos (u objetos de acceso a datos).
  • Actualización de valores en varios repositorios / recursos.
  • Realizar lógica y manipulaciones específicas de la aplicación, etc.

Su modelo que usa en su MVC puede o no provenir de sus servicios. Es posible que desee tomar los resultados que le brinda su servicio y manipularlos en un Modelo que sea más específico para su medio (p. Ej .: una página web).