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