![Webシステムの設計では、なぜMVCモデルが有力なのですか?](https://itsupplee.jp/wp-content/uploads/2023/03/saishin-header-1.png)
MVCモデルでは、モデル、ビュー、コントローラの3つに分けます。
![](https://itsupplee.jp/wp-content/uploads/2023/04/saishin32-1.png)
MVCモデルとは、プログラムのモジュールを、データを取り出しビジネスロジックに基づいて処理を行うモデル(Model)、クライアント端末への表示と出力を担うビュー(View)、クライアント端末からのリクエストを受け取り、その内容に応じてビューとモデルを制御するコントローラ(Controller)の3つに分けるシステム設計手法です。
元々は、プログラミング言語の画面インターフェースの設計指針として誕生したMVCモデルですが、現在では、画面構成が複雑になりがちなWebシステムの開発やJavaによる業務システムの開発などで利用されています。
開発の効率性、コードの再利用性などのメリットがあります。
![](https://itsupplee.jp/wp-content/uploads/2023/04/saishin32-2.png)
MVCモデルには、機能ごとにモジュールを明確に分けることで、ITエンジニアとデザイナーによる開発分業が容易である、コードを再利用しやすい、仕様変更への対応が比較的柔軟、予期しないエラーやデータ書き換えを防げるなどのメリットがある一方で、一定規模以上のシステムではモデルやコントロールが肥大化しやすくMVCモデル通りの設計が難しい、コントロールとビューの相互依存度が高まると修正が難しくなるなどの特徴があります。
現在、システムの特性に合わせてMVCモデルを派生させたモデルとして、MVVMモデル、Fluxモデル、Reduxモデルなども登場しています。