it-swarm.com.de

MVCS - Model View Controller-Dienst

Ich benutze MVC seit langer Zeit und habe von der "Service" - Ebene gehört (zum Beispiel in Java Webprojekt)), und ich habe mich gefragt, ob das so ist ist ein echtes Architekturmuster da ich nicht viele Informationen darüber finden kann.

Die Idee von MVCS ist, eine Service-Schicht zwischen dem Controller und dem Modell zu haben, um die gesamte Geschäftslogik zu kapseln, die sich im Controller befinden könnte. Auf diese Weise sind die Controller nur dazu da, die Ausführung weiterzuleiten und zu steuern. In vielen Controllern (z. B. einer Website und einem Webservice) können Sie einen Service aufrufen, ohne Code zu duplizieren.

63
Matthieu Napoli

Die Service-Schicht kann auf viele Arten interpretiert werden, aber in der Regel haben Sie dort Ihre Kerngeschäftsverarbeitungslogik und befinden sich unterhalb Ihrer MVC-Architektur, jedoch oberhalb Ihrer Datenzugriffsarchitektur.

Zum Beispiel könnte Ihr Layer eines kompletten Systems so aussehen:

  1. Ansichtsebene: Ihr MVC-Framework und der Code Ihrer Wahl
  2. Service-Schicht: Ihr Controller ruft die Objekte dieser Schicht auf, um Modelle oder andere Anforderungen abzurufen oder zu aktualisieren.
  3. Datenzugriffsobjekte: Dies sind Abstraktionen, die Ihre Service-Schicht aufruft, um die benötigten Daten abzurufen/zu aktualisieren. Diese Schicht wird im Allgemeinen entweder eine Datenbank oder ein anderes System aufrufen (z. B. LDAP-Server, Webdienst oder DB vom Typ NoSql).

Die Service-Schicht wäre dann verantwortlich für:

  • Abrufen und Erstellen Ihres Modells aus verschiedenen Datenquellen (oder Datenzugriffsobjekten).
  • Aktualisieren von Werten in verschiedenen Repositorys/Ressourcen.
  • Ausführen anwendungsspezifischer Logik und Manipulationen usw.

Ihr in Ihrer MVC verwendetes Modell kann von Ihren Diensten stammen oder nicht. Vielleicht möchten Sie die Ergebnisse, die Ihnen Ihr Service liefert, in ein Modell umwandeln, das spezifischer für Ihr Medium ist (z. B. eine Webseite).

80
Clinton

Ich hatte selbst über dieses Muster nachgedacht, ohne irgendeinen Hinweis darauf zu sehen, wo sonst und suchte bei Google und fand deine Frage hier :)

Selbst heute gibt es nicht viel, über das gesprochen oder gepostet wird

View-Controller-Dienstmuster.

enter image description here

Ich dachte, Sie wissen zu lassen, dass andere das gleiche denken und das Bild oben ist, wie ich sehe, wie es sein sollte.

Derzeit verwende ich es in einem Projekt, an dem ich gerade arbeite.

Ich habe es in Modulen mit jeder Ebene im Bild oben mit in sich abgeschlossenem Modul.

enter image description here

Die Services-Schicht ist der "Connector" "Vermittler" "Server-seitiger Controller" in dem Sinne, wie der "Client" -seitige Controller für den Client und der "Service" für den Server zuständig sind.

Mit anderen Worten "spricht" der Client-seitige "Controller" nur mit dem "Service" -alias Server-seitigen Controller.

Controller ---> fordert an und empfängt von der <----- Service-Schicht

Die Service-Schicht ruft Informationen ab oder gibt sie an die Schichten auf der Serverseite weiter, die sie benötigen.

Der Service selbst macht nichts anderes, als die Serverschichten mit dem zu verbinden, was sie benötigen.

Hier ist ein Codebeispiel:

enter image description here

12
Kbdavis07