初心者のための MVC フレームワーク チュートリアル: とは Archi構造と例

MVCフレームワークとは何ですか?

この モデル ビュー コントローラー (MVC) フレームワークは、アプリケーションを 3 つの主要な論理コンポーネント (モデル、ビュー、コントローラー) に分割するアーキテクチャ パターンです。そのため、略語は MVC です。各アーキテクチャ コンポーネントは、アプリケーションの特定の開発側面を処理するために構築されます。MVC は、ビジネス ロジックとプレゼンテーション層を互いに分離します。これは、従来、デスクトップのグラフィカル ユーザー インターフェイス (GUI) に使用されていました。現在、Web テクノロジの MVC アーキテクチャは、Web アプリケーションだけでなくモバイル アプリの設計にも広く使用されるようになりました。

MVCの歴史

  • MVCアーキテクチャは1979年にTrygve Reenskaugによって初めて議論されました。
  • MVC モデルは、1987 年に Smalltalk プログラミング言語で初めて導入されました。
  • MVC は、1988 年の記事で初めて一般概念として受け入れられました。
  • 最近、MVC パターンは最新の Web アプリケーションで広く使用されています

MVCの特徴

  • 簡単で摩擦のない試験性。 高度にテスト可能、拡張可能、プラグイン可能なフレームワーク
  • MVCパターンを使用してWebアプリケーションアーキテクチャを設計すると、HTMLとURLを完全に制御できます。
  • ASP.NET、JSP、Django などによって提供される既存の機能を活用します。
  • ロジックの明確な分離: モデル、ビュー、コントローラー。アプリケーション タスクの分離、つまりビジネス ロジック、UI ロジック、入力ロジック
  • SEO フレンドリーな URL の URL ルーティング。 分かりやすく検索可能な URL のための強力な URL マッピング
  • テスト駆動開発 (TDD) のサポート

MVC Archi構造

MVC フレームワークの詳細なアーキテクチャは次のとおりです。

MVC Archi構造
MVC Archi構造図

XNUMX つの重要な MVC コンポーネントは次のとおりです。

  • モデル: すべてのデータとそれに関連するロジックが含まれます。
  • ビュー: ユーザーにデータを提示するか、ユーザーとの対話を処理します。
  • コントローラー: モデル コンポーネントとビュー コンポーネント間のインターフェイス

このコンポーネントを詳しく見てみましょう。

表示

ビューは、データのプレゼンテーションを表すアプリケーションの一部です。

ビューは、モデル データから収集されたデータによって作成されます。 ビューは、出力プレゼンテーションをユーザーに提示するために、モデルに情報を提供するように要求します。

ビューには、グラフ、図、表のデータも表示されます。たとえば、顧客ビューには、テキスト ボックス、ドロップダウンなどのすべての UI コンポーネントが含まれます。

コントローラー

コントローラーは、ユーザー操作を処理するアプリケーションの一部です。 コントローラーはユーザーからのマウスとキーボードの入力を解釈し、モデルとビューに必要に応じて変更を通知します。

コントローラーはモデルにコマンドを送信して、その状態を更新します (例: 特定のドキュメントの保存)。 また、コントローラーは関連するビューにコマンドを送信して、ビューのプレゼンテーションを変更します (たとえば、特定のドキュメントをスクロールするなど)。

モデル

モデル コンポーネントには、データとその関連ロジックが格納されます。 これは、コントローラー コンポーネント間またはその他の関連ビジネス ロジック間で転送されるデータを表します。 たとえば、Controller オブジェクトはデータベースから顧客情報を取得します。 データを操作してデータベースに送り返すか、同じデータをレンダリングするために使用します。

ビューからのリクエストに応答し、コントローラーからの自身を更新する命令にも応答します。 これは、データの維持を担当するパターンの最下位レベルでもあります。

MVC の例

日常生活からの Model View Controller の例を見てみましょう。

MVC の例

  • あなたがレストランに行くと仮定しましょう。 キッチンに行って食事を準備する必要はありませんが、家で確実に行うことができます。 代わりに、そこに行ってウェイターが来るのを待ちます。
  • 今度はウェイターがあなたのところに来て、あなたは食べ物を注文します。 ウェイターはあなたが誰なのか、そしてあなたが何を望んでいるのか知りません、ただあなたの食べ物の注文の詳細を書き留めただけです。
  • その後、ウェイターはキッチンに移動します。 キッチンではウェイターが食事を準備するわけではありません。
  • コックが料理を準備します。ウェイターにお客様のテーブル番号とともに注文が伝えられます。
  • 調理してからあなたのために食べ物を用意します。 彼は食材を使って料理を作ります。 野菜サンドイッチを注文したとします。 次に、冷蔵庫から調達するパン、トマト、ジャガイモ、ピーマン、タマネギ、ビット、チーズなどが必要になります。
  • クックは最後にウェイターに食べ物を渡します。 今度は、この食べ物をキッチンの外に移動するのがウェイターの仕事です。
  • これで、ウェイターはあなたが注文した食べ物とその提供方法を​​知ることができます。

このMVCアーキテクチャの例では、

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

もう XNUMX つの MVC モデルの例を見てみましょう。

MVC の例

車の駆動機構も MVC モデルの例です。

  • すべての車は XNUMX つの主要な部分で構成されています。
  • View= ユーザーインターフェース:(ギアレバー、パネル、ステアリングホイール、ブレーキなど)
  • コントローラー - メカニズム (エンジン)
  • モデル - ストレージ (ガソリンまたはディーゼル タンク)

車はエンジンで走行し、貯蔵庫から燃料を取り出しますが、前述のユーザー インターフェイス デバイスを使用してのみ走行します。

人気のあるMVCWebフレームワーク

以下に、いくつかの人気のある MVC フレームワークのリストを示します。

MVC の利点: 主な利点

MVC アーキテクチャを使用する主な利点は次のとおりです。

  • コードのメンテナンスが簡単で、拡張や成長も簡単
  • MVC モデル コンポーネントはユーザーとは別にテスト可能
  • 新しいタイプのクライアントのサポートが容易になりました
  • さまざまなコンポーネントの開発は並行して実行できます。
  • アプリケーションをモデル、ビュー、コントローラーの3つのユニットに分割することで、複雑さを回避できます。
  • 単一のコントローラーを通じて Web アプリケーション要求を処理するフロント コントローラー パターンのみを使用します。
  • 最適なサポートを提供します テスト駆動開発
  • これは、Web デザイナーや開発者の大規模なチームによってサポートされている Web アプリに適しています。
  • 懸念事項の明確な分離 (SoC) を提供します。
  • 検索エンジン最適化 (SEO) に優しい。
  • すべてのクラスとオブジェクトは互いに独立しているため、個別にテストできます。
  • MVC 設計パターンでは、コントローラー上の関連するアクションを論理的にグループ化できます。

MVC を使用するデメリット

  • このモデルの読み取り、変更、単体テスト、再利用が難しい
  • フレームワークのナビゲーションは、新しい抽象化レイヤーが導入され、ユーザーが MVC の分解基準に適応する必要があるため、複雑になることがあります。
  • 正式な検証サポートはありません
  • データの複雑さと非効率性の増大
  • 最新のユーザー インターフェイスで MVC を使用することの難しさ
  • 並列プログラミングを行うには複数のプログラマが必要です。
  • 複数のテクノロジーに関する知識が必要です。
  • コントローラー内の大量のコードのメンテナンス

3層 Archiテクチャと MVC の比較 Archi構造

3層 Archi構造 MVC Archi構造
コミュニケーション このタイプのアーキテクチャ パターンは、データ層と直接通信することはありません。 すべての層は、トライアングル トポロジを使用して直接通信します。
使用法 3 層: クライアント、データ層、ミドルウェアが物理的に別個のプラットフォームで実行される Web アプリケーションで広く使用されています。 通常、単一のグラフィカル ワークステーション上で実行されるアプリケーションで使用されます。

まとめ

  • MVCは、アプリケーションを1)モデル、2)ビュー、3)コントローラーに分割するアーキテクチャパターンです。
  • モデル: すべてのデータとそれに関連するロジックが含まれます。
  • ビュー: ユーザーにデータを提示するか、ユーザーとの対話を処理します。
  • コントローラー: モデル コンポーネントとビュー コンポーネント間のインターフェイス
  • MVCアーキテクチャは1979年にTrygve Reenskaugによって初めて議論されました。
  • MVCアーキテクチャ Java 非常にテスト可能で、拡張可能で、プラグイン可能なフレームワークです
  • 人気のある MVC フレームワークには、Rails、Zend Framework、CodeIgniter、Laravel、Fuel PHP などがあります。