Created: 2025/03/11
——新学期が近づくにつれ
焦りと期待が入り混じるこの季節——
そんな中、突然、
iwa先輩から
天からのお告げが聞こえた
茶番はこのくらいにして
今回は、臨地で学んだ復習も兼ねて
レイヤードアーキテクチャのMVCモデル2について記事を書いて行こうと思います。
何も作らないのも味気ないので
RPGの戦闘によるダメージ計算的なプログラムも作成する予定です。
皆様のお役に立てれば嬉しくて震えます。
Model-View-Controllerモデル略してMVCモデルは
この3つのコンポーネント(部品)で構成する
ソフトウェア開発方法論のことを指します——以上
これで、理解出来たら 多分才能に溢れているので読み飛ばしてください
もう少し説明します。
各コンポーネントの役割
関係は以下の図のようになっています。
このような関係のため、処理の流れは
1. ユーザーのアクションをViewが検出しViewがControllerを動かす
2. ControllerがModelを動かす
3. ModelがViewに通知を送る
4. ViewがModelからデータを取得
5. Viewが表示
のようになっています。
そのため、MVCモデルでは以下のような問題が発生しやすくなります。
本来Controllerが担当するべき処理がView側に書かれてしまうことがあり
結果として不自然な設計になってしまいます。
なんて気持ち悪い設計だ
もうお察ししてる人も多いかと思いますが
MVC2(MVCモデル2)は、MVCが改良されたものになります。
Windowsと違って数字が上がることで利便性良くなるの不思議~
改良内容を具体的に言うと
そのMVCの考え方をベースに、Webアーキテクチャを適用し生まれたこと。
改良によって生まれた違いは
MVC2はControllerがすべて制御するようになったことです。
各コンポーネントの役割は同じなので省略します。
以下の図を見てください。
上の図からも読み取れるように
Viewから直接Modelのデータを取ることはありません。
Controllerが橋渡しをします。
そして、Controllerがすべての処理を制御しているため
互いの依存度が低く、独立性が保たれています。
これにより
各コンポーネントが本来の役割から逸脱することはありませんし
テストや修正も容易になります。
さらに
Controllerが処理の呼び出しを行っているため
Controllerのプログラムのコードを見るだけで
プログラムの全体の流れを把握することが出来ます。
MVCモデル2はMVCモデルと違い
Model, View, Controllerを明確に分離し
処理の呼び出し元はControllerのみなので
作り手にも読み手にも優しい設計であると言えると思います。
この記事では
MVCモデルとその改良版であるMVCモデル2について解説しました。
MVCモデル2ではControllerがすべてを制御することで
各コンポーネントの役割が明確になり
保守性や可読性が向上するという利点があります。
皆さんも試しに是非使ってみてください。
この記事は初めて書いたので、不十分な点や改善できる部分があるかもしれません。
もし気になる点があれば、ぜひご指摘いただけると嬉しいです!
最後まで読んでいただき、ありがとうございました。
次回からはコーディングしていこうと思います。