web-dev-qa-db-fra.com

MVCS - Service de contrôleur de vue modèle

J'utilise MVC depuis longtemps et j'ai entendu parler de la couche "Service" (par exemple dans Java)) et je me demandais si cela est un modèle architectural réel étant donné que je ne trouve pas beaucoup d'informations à ce sujet.

L'idée de MVCS est d'avoir une couche de service entre le contrôleur et le modèle, pour encapsuler toute la logique métier qui pourrait se trouver dans le contrôleur. De cette façon, les contrôleurs sont juste là pour transmettre et contrôler l'exécution. Et vous pouvez appeler un service dans de nombreux contrôleurs (par exemple, un site Web et un service Web), sans dupliquer le code.

63
Matthieu Napoli

La couche de service peut être interprétée de nombreuses façons, mais c'est généralement là que vous avez votre logique de traitement métier principale, et se situe en dessous de votre architecture MVC, mais au-dessus de votre architecture d'accès aux données.

Par exemple, votre couche d'un système complet peut ressembler à ceci:

  1. Voir la couche: votre framework MVC et votre code de choix
  2. Couche de service: votre contrôleur appellera les objets de cette couche pour obtenir ou mettre à jour des modèles ou d'autres demandes.
  3. Objets d'accès aux données: ce sont des abstractions que votre couche de service appellera pour obtenir/mettre à jour les données dont elle a besoin. Cette couche appellera généralement une base de données ou un autre système (par exemple: serveur LDAP, service Web ou base de données de type NoSql)

La couche service serait alors responsable de:

  • Récupération et création de votre "modèle" à partir de diverses sources de données (ou objets d'accès aux données).
  • Mise à jour des valeurs dans différents référentiels/ressources.
  • Effectuer une logique et des manipulations spécifiques à l'application, etc.

Votre modèle que vous utilisez dans votre MVC peut ou non provenir de vos services. Vous voudrez peut-être prendre les résultats que votre service vous donne et les manipuler dans un modèle plus spécifique à votre support (par exemple: une page Web).

80
Clinton

J'avais pensé à ce modèle moi-même sans voir aucune référence à cela ailleurs et j'ai recherché Google et trouvé votre question ici :)

Même aujourd’hui, il n’ya pas beaucoup d’organes qui parlent ou publient des

Modèle de service de View-Controller.

enter image description here

Pensé pour vous faire savoir que d'autres pensent la même chose et l'image ci-dessus est la façon dont je vois comment cela devrait être.

Actuellement, je l'utilise dans un projet sur lequel je travaille actuellement.

Je l'ai dans des modules avec chaque couche dans l'image ci-dessus avec dans son propre module autonome.

enter image description here

La couche Services est le "connecteur" "intermédiaire" "contrôleur côté serveur" en ce que ce que le contrôleur côté "client" fait pour le client, le "service" pour le serveur.

En d'autres termes, le "contrôleur" côté client "ne parle" qu'avec le "service" alias contrôleur côté serveur.

Contrôleur ---> Demandes et réception de la couche de service <-----

La couche Service récupère ou fournit des informations aux couches côté serveur qui en ont besoin.

En soi, le Service ne fait rien d'autre que de connecter les couches serveur avec ce dont elles ont besoin.

Voici un exemple de code:

enter image description here

12
Kbdavis07