Skip to main content

Model-View-Controllerとは何ですか?

model-view-controller(MVC)は、プログラムの各要素を明確に定義された機能領域にセグメント化するソフトウェアアーキテクチャと設計パターンの一種です。Model-View-Controllerアーキテクチャでは、モデルは、データを操作、保存、取得、およびその他の方法で処理し、計算するすべての内部プログラムロジックを扱います。ビューの側面は、ユーザーのモデルから情報を表示する責任があり、ユーザーがプログラムに入力する方法も提供します。コントローラーは、ビューから入力、評価、またはその他の方法で処理し、モデルと対話してデータまたはプログラム状態を変更します。モデルビューアーコントローラーの設計では、機能をカプセル化するプログラムが必要ですが、3つのセクションは、他のより積極的なデザインパターンとは異なり、何らかの方法で相互に対話する必要があり、一般的に互いに依存しています。多くの場合、グラフィカルユーザーインターフェイス(GUI)を管理するアプリケーションでモデルビューコントローラーパターンが見られます。MVCパターンを使用して、GUIのさまざまな視覚要素は、ビュー、ユーザーのクリックがコントローラーによって処理される場所の記録と処理、および実際に情報の変更または情報を変更することで、モデルによって処理されます。アプリケーションの正確な設計に応じて、MVCパターンの各コンポーネントには、モデルが画面を更新するように直接説明できるように、他のコンポーネントと対話するメカニズムを持つことができます。画面を更新し、新しい入力を受け入れないことをコントローラー。厳格なブラックボックスアプローチをとるいくつかの設計パターンとは異なり、モデルビューコントロラープログラムはわずかに柔軟性がある傾向がありますが、MVCプログラムをモジュール式の変更またはデバッグを困難にする可能性があります。ビューコントローラーパターンは、各コンポーネントの1つのみを含める必要はありません。1つの例は、複数のモニターなど、複数のビューを持つアプリケーション、または複数のクライアントデバイスで見ることができるディスプレイです。多くのユーザーがデータベースにアクセスできるようにするアプリケーションでは、複数のビューとコントローラーを使用できます。すべてが単一のモデルに応答します。ただし、モデルビューコントローラーコンポーネントの1対1の比率を維持するシステムを設計する方が一般的です。特に非オブジェクト指向アプリケーションの場合、パターンがまったく使用されていない場合よりも、MVCパターンを使用するシステムの特定の部分を変更するため。アプリケーションがコールバックまたはリスナーとオブザーバーを使用してコンポーネント間の相互作用を実装する場合、他の2つに影響を与えることなく各コンポーネントを変更できます。これは、モデルまたはコントローラーに影響を与えることなく、新しいGUIを実装できることを意味します。ただし、モデルビューコントローラーシステムの根本的な変更には、個々のコンポーネントごとに少量の再コーディングが必要になる場合があることに注意してください。