初心者のための 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 フレームワークの詳細なアーキテクチャは次のとおりです。
XNUMX つの重要な MVC コンポーネントは次のとおりです。
- モデル: すべてのデータとそれに関連するロジックが含まれます。
- ビュー: ユーザーにデータを提示するか、ユーザーとの対話を処理します。
- コントローラー: モデル コンポーネントとビュー コンポーネント間のインターフェイス
このコンポーネントを詳しく見てみましょう。
表示
ビューは、データのプレゼンテーションを表すアプリケーションの一部です。
ビューは、モデル データから収集されたデータによって作成されます。 ビューは、出力プレゼンテーションをユーザーに提示するために、モデルに情報を提供するように要求します。
ビューには、グラフ、図、表のデータも表示されます。たとえば、顧客ビューには、テキスト ボックス、ドロップダウンなどのすべての UI コンポーネントが含まれます。
コントローラー
コントローラーは、ユーザー操作を処理するアプリケーションの一部です。 コントローラーはユーザーからのマウスとキーボードの入力を解釈し、モデルとビューに必要に応じて変更を通知します。
コントローラーはモデルにコマンドを送信して、その状態を更新します (例: 特定のドキュメントの保存)。 また、コントローラーは関連するビューにコマンドを送信して、ビューのプレゼンテーションを変更します (たとえば、特定のドキュメントをスクロールするなど)。
モデル
モデル コンポーネントには、データとその関連ロジックが格納されます。 これは、コントローラー コンポーネント間またはその他の関連ビジネス ロジック間で転送されるデータを表します。 たとえば、Controller オブジェクトはデータベースから顧客情報を取得します。 データを操作してデータベースに送り返すか、同じデータをレンダリングするために使用します。
ビューからのリクエストに応答し、コントローラーからの自身を更新する命令にも応答します。 これは、データの維持を担当するパターンの最下位レベルでもあります。
MVC の例
日常生活からの Model View Controller の例を見てみましょう。
例
- あなたがレストランに行くと仮定しましょう。 キッチンに行って食事を準備する必要はありませんが、家で確実に行うことができます。 代わりに、そこに行ってウェイターが来るのを待ちます。
- 今度はウェイターがあなたのところに来て、あなたは食べ物を注文します。 ウェイターはあなたが誰なのか、そしてあなたが何を望んでいるのか知りません、ただあなたの食べ物の注文の詳細を書き留めただけです。
- その後、ウェイターはキッチンに移動します。 キッチンではウェイターが食事を準備するわけではありません。
- コックが料理を準備します。ウェイターにお客様のテーブル番号とともに注文が伝えられます。
- 調理してからあなたのために食べ物を用意します。 彼は食材を使って料理を作ります。 野菜サンドイッチを注文したとします。 次に、冷蔵庫から調達するパン、トマト、ジャガイモ、ピーマン、タマネギ、ビット、チーズなどが必要になります。
- クックは最後にウェイターに食べ物を渡します。 今度は、この食べ物をキッチンの外に移動するのがウェイターの仕事です。
- これで、ウェイターはあなたが注文した食べ物とその提供方法を知ることができます。
このMVCアーキテクチャの例では、
View= You Waiter= Controller Cook= Model Refrigerator= Data
もう XNUMX つの MVC モデルの例を見てみましょう。
例
車の駆動機構も MVC モデルの例です。
- すべての車は XNUMX つの主要な部分で構成されています。
- View= ユーザーインターフェース:(ギアレバー、パネル、ステアリングホイール、ブレーキなど)
- コントローラー - メカニズム (エンジン)
- モデル - ストレージ (ガソリンまたはディーゼル タンク)
車はエンジンで走行し、貯蔵庫から燃料を取り出しますが、前述のユーザー インターフェイス デバイスを使用してのみ走行します。
人気のあるMVCWebフレームワーク
以下に、いくつかの人気のある MVC フレームワークのリストを示します。
- Ruby on Rails
- ジャンゴ
- CakePHP
- Yii
- CherryPy
- 春のMVC
- 触媒
- レール(Rail)
- Zendフレームワーク
- CodeIgniter
- ララベル
- PHPに燃料を供給する
- Symphony
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 などがあります。