[JAVA] [MVC-Modell] Ein Memo, das ein Anfänger MVC gelernt hat

Dies ist das Ergebnis dessen, was ich durch die Erforschung von MVC gelernt habe. Wenn Sie Vorschläge haben, würde ich mich freuen, wenn Sie einen Kommentar abgeben könnten.

Wer ist das Ziel dieses Artikels?

・ Personen, die das Wort MVC noch nicht kennen und wissen möchten, was es ist ・ Leute, die wissen wollen, wie Anfänger MVC wahrnehmen

Was ist MVC?

Kurz gesagt, es ist ** eines der Modelle für die Organisation von Programmen **. Basierend auf der Idee, dass "ein System, das vom Benutzer visuell bedient werden kann, in Teile unterteilt werden kann, die als ** Modell **, ** Ansicht ** und ** Controller ** bezeichnet werden", werden diese als MVC abgekürzt.

Was für eine Einheit ist "M", "V" und "C"?

Betrachten Sie beispielsweise die Amazon-Produktkaufseite, die jeder verwendet hat. Dies ist der Verarbeitungsablauf, wenn Sie auf der Amazon-Produktseite auf die Schaltfläche "Kaufen" klicken. (Ich kenne die interne Implementierung nicht, daher werde ich sie unter der Annahme schreiben, dass sie auf MVC basiert.)

Gesamtbild

image.png Das ganze Bild sieht so aus.

Der Ablauf ist wie folgt (bitte auf unangemessene Punkte hinweisen).

① Produktseite anzeigen

Zeigen Sie dem Benutzer die Produktseite über den Monitor. image.png

Der Benutzer, der die Produktseite sieht, bestätigt die Position der Kaufschaltfläche.

② Drücken Sie die Kauftaste

Der Benutzer bewegt den Mauszeiger auf die Kaufschaltfläche und klickt.

③ Benachrichtigung, dass die Kauftaste gedrückt wurde

Sendet eine Benachrichtigung an den Controller, dass die Kauftaste gedrückt wurde. Es veranlasst das System, die Verarbeitung zu starten.

④ Anforderungsverarbeitung im Zusammenhang mit dem Drücken der Kauftaste

Nach Erhalt der Benachrichtigung fordert der Controller das Modell auf, "geeignete Maßnahmen zu ergreifen, weil die Kauftaste gedrückt wurde".

⑤ DB-Verarbeitung

Das Modell, das die Anforderung empfangen hat, verarbeitet die Datenbank gemäß dem Anforderungsinhalt. In diesem Fall ist es mit der Aktion "Benutzer kauft das Produkt" verknüpft, also ・ Reduzieren Sie den Bestand an Zielprodukten um 1. ・ Informationen zum Zielprodukt abrufen Und so weiter.

⑥ Anfrage zum Zeichnen der Kaufseite

Bitten Sie View, "die Kaufseite anzuzeigen".

⑦ Referenz der Produktdaten

Die Ansicht geht zu Modell, um die Informationen zu erhalten, die zum Zeichnen der Kaufabschlussseite erforderlich sind. Da die DB-Verarbeitung in der Phase von ⑤ abgeschlossen ist, verfügt das Modell über die erforderlichen Informationen, um die nächste Seite zu zeichnen.

⑧ Abschluss des Zeichnens der Kaufseite

Basierend auf den erfassten Daten zeichnet View die Kaufabschlussseite.

Der Fluss ist wie ... Nachdem wir eine ungefähre Vorstellung davon haben, was jeder Model View Controller tut, lassen Sie es uns in Worten sortieren.

** Was ist Ansicht? ** ** **

Es ist schwer von Model zu verstehen, also fangen wir mit View an. Die Ansicht ist am intuitivsten und am einfachsten zu verstehen.

Kurz gesagt, Ansicht ** zeichnet den Teil, der für den Benutzer sichtbar ist. In diesem Fall wird die ** Verarbeitung zur Anzeige der Kaufabschlussseite ** durchgeführt. image.png

View hat die Aufgabe, ** das System mit dem Benutzer zu verbinden **. Dank View werden Informationen wie "Wie viel bewegen Sie die Maus und klicken, um das Produkt zu kaufen" und "Der Kauf des Produkts XX wurde abgeschlossen" an den Benutzer übertragen.

** Was ist Controller? ** ** **

Als nächstes kommt Controller. ** Controller ** empfängt Eingaben vom Benutzer und gibt Befehle an Model and View aus. Es ist wie bei einem Kommandanten.

In diesem Fall ** erhält es die Aktion des Benutzers, "die Kauftaste zu drücken", und wandelt sie in eine Anweisung um, die von Model and View verarbeitet werden kann **.

Für Modell "Bitte reduzieren Sie den Lagerbestand des Zielprodukts". "Informationen zum Zielprodukt abrufen."

Jede Ansicht enthält eine Anweisung zum "Zeichnen des Bildschirms nach dem Hinzufügen zum Warenkorb".

** Was ist ein Modell? ** ** **

Als ich es nachgeschlagen habe,

Modell behandelt die gesamte Geschäftslogik.

Es wird sehr oft erklärt, dass.

Wenn wir jedoch das Wort "Geschäftslogik" untersuchen, stellen wir schließlich fest, dass ** "es keine klare Definition gibt" **.

Mit anderen Worten, die Bedeutung hängt vom Kontext ab.

Persönlich ist die Erklärung des Modells, das am besten passt ** "Model erledigt die ganze Arbeit außer View und Controller" ** Das ist.

Der Prozess des Erfassens von Daten aus der Datenbank und der Prozess des Verarbeitens der Daten für die Anzeige in der Ansicht werden alle von Model durchgeführt.

Hier ・ Greifen Sie auf die Datenbank zu und reduzieren Sie den Produktbestand um eins ・ Informieren Sie sich über Produkte in Ihrem Warenkorb Wir machen die Verarbeitung.

Was ist der Grund für die Aufteilung in MVC?

Bisher haben wir jeden Teil von MVC erklärt. Warum müssen wir das tun? Es gibt zwei Hauptgründe.

1. Einfache Arbeitsteilung

Angenommen, das Entwicklungsteam hat "einen Ingenieur, der gut darin ist, Verarbeitungen rund um DB zu erstellen" und "einen Ingenieur, der gut über die Benutzeroberfläche nachdenkt".

Zu diesem Zeitpunkt sollte, wenn die Quelle des Systems durch MVC getrennt ist, das erstere "Modell" und das letztere "Ansicht" entwickeln.

Es ist von Vorteil, dass jede verantwortliche Person geklärt und die Arbeitseffizienz verbessert wird.

Auf diese Weise ist es sehr wichtig, dass jeder Teil des Systems bei der Entwicklung als Team klar organisiert ist.

2. Pflegeleicht

Es gibt kein "Ist es dann sinnvoll, MVC in der persönlichen Entwicklung zu trennen?"

Wenn Sie Ihr System mit MVC organisieren, wird jede Funktion unabhängig.

Mit anderen Worten, ** Wenn ein Teil in seiner Funktion geändert wird, wird der Einfluss auf andere Teile verringert. ** ** **

Das Ändern der Position der Warenkorbschaltfläche bedeutet beispielsweise nicht, dass die Verarbeitung der mit der Warenkorbschaltfläche verknüpften Datenbank geändert wird.

Wenn Sie die DB-Verarbeitung in View geschrieben haben, müssen Sie sie möglicherweise ändern (das System, das ich in der Vergangenheit erstellt habe, ist wie folgt).

Leicht Fehler zu machen

Schreiben Sie den zu schreibenden Prozess in Model in View

Dies ist ein Fehler, den ich gemacht habe, als ich das System zum ersten Mal von Grund auf neu entwickelt habe. Ich habe in View den Prozess der Verbindung mit der Datenbank und den Prozess der Verarbeitung der Daten geschrieben.

Da es sich um ein kleines System handelt, habe ich es mit der Idee gemacht, dass "es in Ordnung ist, wenn es funktioniert", aber mit dieser Idee kann ein Programm mit extrem geringer Wartbarkeit erstellt werden.

Zusammenfassung / Eindruck

・ MVC ist ein Programmorganisationsmodell

Modell Ein Modell zum Organisieren von Programmen mit View Controller. Der Hauptzweck besteht darin, die Arbeitsteilung zu vereinfachen und die Wartbarkeit zu verbessern.

・ Ich denke, es ist einfacher zu verstehen, wenn Sie "VCM" sagen.

In Anbetracht des Ablaufs, in dem der Benutzer die Ansicht betrachtet, den Controller bedient und das Modell ihn hinter den Kulissen verarbeitet, dachte ich, es wäre einfacher, intuitiv zu verstehen, wenn man "VCM" sagt. Gibt es einen Grund für die Bestellung von MVC?

Verweise

https://hijiriworld.com/web/mvc-concept/ MVC unter Cartoon verstanden https://www.slideshare.net/MugeSo/mvc-14469802 Immerhin ist Ihre MVC falsch https://qiita.com/s_emoto/items/975cc38a3e0de462966a Über das MVC-Modell https://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF "Geschäftslogik" Wikipedia http://at-grandpa.hatenablog.jp/entry/2013/11/01/072636 Denken Sie noch einmal über "MVC-Missverständnisse" nach

Recommended Posts

[MVC-Modell] Ein Memo, das ein Anfänger MVC gelernt hat
Ein Memo, das Spring Boot berührte
MVC-Modell
Ein einfaches Beispiel für das MVC-Modell
[Persönliches Memo] Ich habe etwas über Modifikatoren gelernt
Eine Geschichte, die Geschäftslogik und Modell trennt
Ein Memo für mich, dass Objektorientierung etwas ist
Ein Memo, das eine Klasse behandelt, die unabhängig mit ArrayList erstellt wurde
Was ist ein MVC-Modell?
[Anfänger] Android App, die Bälle mit Sensoren rollt [Java]