ホームページ >よくある問題 >MVCフレームワークとは何ですか

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

coldplay.xixi
coldplay.xixiオリジナル
2020-08-24 11:12:094439ブラウズ

mvc フレームワークは、アプリケーションの入力、処理、出力を強制的に分離し、同じプログラムで異なる表現形式を使用できるようにする設計パターンです。

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

MVC (モデル ビュー コントローラー) はもともとデスクトップ プログラムに存在していました。M はデータ モデルを指し、V はユーザーを指します。インターフェイス、C はコントローラーです。 MVC を使用する目的は、M と V の実装コードを分離して、同じプログラムで異なる表現を使用できるようにすることです。たとえば、統計データのバッチをそれぞれ棒グラフと円グラフで表すことができます。 C の目的は、M と V の同期を確保することです。M が変更されると、V も同期して更新される必要があります。

Model-View-Controller (MVC) は、1980 年代にプログラミング言語 Smalltalk-80 用に Xerox PARC によって発明されたソフトウェア設計パターンであり、現在広く使用されています。近年、これは Sun の J2EE プラットフォームの設計パターンとして推奨されており、ColdFusion と PHP を使用する開発者がますます多くなっています。 Model-View-Controller パターンは、多くの利点がある便利なツールボックスですが、いくつかの欠点もあります。

MVC の仕組み

MVC は、アプリケーションの入力、処理、出力の分離を強制する設計パターンです。 MVC を使用するアプリケーションは、モデル、ビュー、コントローラーの 3 つのコア コンポーネントに分割されます。彼らはそれぞれ独自のタスクを処理します。

View

View は、ユーザーが表示して操作するインターフェイスです。古いスタイルの Web アプリケーションの場合、ビューは HTML 要素で構成されるインターフェイスですが、新しいスタイルの Web アプリケーションでは、HTML は依然としてビューにおいて重要な役割を果たしていますが、Macromedia Flash や XHTML など、いくつかの新しいテクノロジが際限なく登場しています。 XML/XSL、WML、その他のマークアップ言語と Web サービス。

アプリケーション インターフェイスを扱う方法はますます困難になっています。 MVC の大きな利点の 1 つは、アプリケーションのさまざまなビューを処理できることです。データがオンラインで保存されているか、従業員のリストで保存されているかにかかわらず、ビューでは実際の処理は発生せず、ビューとしてはデータを出力し、ユーザーがデータを操作できるようにする手段としてのみ機能します。

モデル

モデルは企業データとビジネス ルールを表します。 MVC の 3 つのコンポーネントの中で、モデルには最も多くの処理タスクがあります。たとえば、EJB や ColdFusion コンポーネントなどのコンポーネント オブジェクトを使用してデータベースを処理する場合があります。モデルによって返されるデータはニュートラルです。これは、モデルがデータ形式とは何の関係もないことを意味するため、モデルは複数のビューにデータを提供できます。モデルに適用されるコードは 1 回記述するだけで済み、複数のビューで再利用できるため、コードの重複が削減されます。

コントローラー

コントローラーはユーザー入力を受け入れ、モデルとビューを呼び出してユーザーのニーズを満たします。そのため、Web ページ内のハイパーリンクがクリックされて HTML フォームが送信された場合、コントローラー自体は何も出力したり、処理を実行したりしません。リクエストを受信し、リクエストを処理するためにどのモデル コンポーネントを呼び出すかを決定し、モデル処理によって返されたデータを表示するためにどのビューを使用するかを決定するだけです。

ここで、MVC の処理プロセスを要約します。まず、コントローラーがユーザーのリクエストを受け取り、処理のためにどのモデルを呼び出すかを決定します。次に、モデルはビジネス ロジックを使用してユーザーのリクエストを処理し、データを返します。最後に、コントローラーは対応するデータを使用します。ビューは、モデルから返されたデータをフォーマットし、プレゼンテーション層を通じてユーザーに表示します。

MVC を使用する理由

ほとんどの Web アプリケーションは、ASP、PHP、または CFML などの手続き型言語を使用して作成されます。データベース クエリなどのデータ レベルのコードと、HTML などのプレゼンテーション レベルのコードが混在しています。

経験豊富な開発者はプレゼンテーション層からデータを分離しますが、これは通常簡単ではなく、慎重な計画と継続的な試みが必要です。 MVC では基本的にそれらを強制的に分離します。 MVC アプリケーションの構築には追加の作業が必要ですが、それによってもたらされる利点は疑いの余地がありません。

まず何よりも、複数のビューがモデルを共有することが重要です。前述したように、アプリケーションにアクセスする方法はますます増えています。これに対する 1 つの解決策は、ユーザーが Flash インターフェイスを希望するか WAP インターフェイスを希望するかに関係なく、1 つのモデルでそれらすべてを処理できる MVC を使用することです。データとビジネス ルールをプレゼンテーション層から分離したため、コードを最大限に再利用できます。

モデルから返されるデータはフォーマットされていないため、同じコンポーネントを異なるインターフェイスで使用できます。たとえば、多くのデータは HTML で表現されますが、Macromedia Flash や WAP で表現されることもあります。モデルには状態管理機能とデータ永続化機能もあり、たとえば、セッションベースのショッピング カートや電子商取引プロセスを Flash Web サイトやワイヤレス ネットワーク アプリケーションで再利用できます。

モデルは自己完結型であり、コントローラーやビューから切り離されているため、アプリケーションのデータ層やビジネス ルールを簡単に変更できます。データベースを MySQL から Oracle に移行する場合、または RDBMS ベースのデータ ソースを LDAP に変更する場合は、モデルを変更するだけです。

モデルを正しく実装すると、データがデータベースからのものであっても LDAP サーバーからのものであっても、ビューにはデータが正しく表示されます。 MVC を使用するアプリケーションの 3 つのコンポーネントは相互に排他的であるため、そのうちの 1 つを変更しても他の 2 つは影響を受けないため、この設計アイデアに基づいて適切な疎結合コンポーネントを構築できます。

私にとって、コントローラーには利点もあります。つまり、コントローラーを使用してさまざまなモデルやビューを接続し、ユーザーのニーズを満たすことができます。このようにして、コントローラーはアプリケーションを構築するための強力なツールを提供できます。 。 手段。再利用可能なモデルとビューがいくつかある場合、コントローラーはユーザーのニーズに応じて処理するモデルを選択し、ビューを選択して処理結果をユーザーに表示できます。

MVC の欠点

MVC の欠点は、MVC が明確に定義されていないため、完全に理解するのがそれほど簡単ではないことです。 MVC の使用には慎重な計画が必要であり、その内部原理が複雑であるため、検討するのに時間がかかります。

MVC をアプリケーションにどのように適用するかを考えるのにかなりの時間を費やす必要があると同時に、モデルとビューを厳密に分離する必要があるため、アプリケーションのデバッグも困難になります。すべてのコンポーネントは使用前に徹底的にテストする必要があります。コンポーネントをテストしたら、心配することなく再利用できます。

私の個人的な経験によれば、アプリケーションを 3 つのコンポーネントに分割したため、MVC を使用すると、以前よりも多くのファイルを管理する必要があることも意味しますが、これは明らかです。これは私たちの仕事量が増加したように見えるかもしれませんが、それが私たちにもたらすメリットに比べれば、これは何でもないことを覚えておいてください。

MVC は小規模または中規模のアプリケーションには適していません。それほど大規模ではないアプリケーションに MVC を適用することに多くの時間を費やすと、通常は利益よりも損失の方が多くなります。

MVC はソフトウェアを作成するための優れた方法です

MVC デザイン パターンはソフトウェアを作成するための優れた方法であり、コンテンツや表示などのいくつかの原則を提唱しています。それぞれを分離すると理解しやすくなります。ただし、モデル、ビュー、コントローラーのコンポーネントを分離したい場合は、アプリケーション、特にアプリケーションのアーキテクチャ面を再考する必要があるかもしれません。 MVC を受け入れる意思があり、MVC がもたらす余分な作業と複雑さに対処できる能力がある場合、MVC は堅牢性、コードの再利用、構造の点でソフトウェアを新しいレベルに引き上げます。

その他のプログラミング関連コンテンツについては、php 中国語 Web サイトの プログラミング ビデオ 列に注目してください。

以上がMVCフレームワークとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。