Ich benutze MVC schon lange und habe von der " Service " -Schicht gehört (zum Beispiel in einem Java-Webprojekt). Ich habe mich gefragt, ob dies ein echtes Architekturmuster ist, da ich nicht viele Informationen darüber finden kann es.
Die Idee von MVCS besteht darin, eine Serviceschicht 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. Und Sie können einen Dienst in vielen Controllern (z. B. einer Website und einem Webservice) aufrufen, ohne den Code zu duplizieren.
model-view-controller
architecture
architectural-patterns
Matthieu Napoli
quelle
quelle
Antworten:
Die Service-Schicht kann auf viele Arten interpretiert werden, aber normalerweise haben Sie dort Ihre Kerngeschäftsverarbeitungslogik und befinden sich unter Ihrer MVC-Architektur, aber über Ihrer Datenzugriffsarchitektur.
Beispielsweise kann Ihre Schicht eines vollständigen Systems folgendermaßen aussehen:
Die Serviceschicht wäre dann verantwortlich für:
Das Modell, das Sie in Ihrer MVC verwenden, kann von Ihren Diensten stammen oder nicht. Möglicherweise 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).
quelle
Ich hatte selbst über dieses Muster nachgedacht, ohne irgendwo anders einen Hinweis darauf zu sehen, und Google durchsucht und Ihre Frage hier gefunden :)
Selbst heute gibt es nicht viel, über das jemand spricht oder schreibt
View-Controller-Servicemuster.
Ich wollte Sie wissen lassen, dass andere das Gleiche denken, und das Bild oben zeigt, wie ich es sehen 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 einem eigenen Modul.
Die Serviceschicht ist der "Konnektor", "Vermittler", "serverseitiger Controller", was der "clientseitige" Controller für den Client und der "Service" für den Server tut.
Mit anderen Worten, der clientseitige "Controller" "kommuniziert" nur mit dem "Service", auch bekannt als serverseitiger Controller.
Controller ---> Anforderungen und Empfang von der <----- Service-Schicht
Die Service-Schicht ruft Informationen ab oder gibt Informationen an die Schichten auf der Serverseite weiter, die sie benötigen.
Der Dienst selbst macht nichts anderes, als die Serverschichten mit dem zu verbinden, was sie benötigen.
Hier ist ein Codebeispiel:
quelle