MVC とは何ですか?
phper との最初のインタビューを覚えています (php は、すぐに始めることができるもう 1 つの Web 開発言語です)。MVC について尋ねられたとき、私は m がモデルで v がビューであることしか知りませんでした。 . c はコントローラーです。そのため、いろいろ質問されましたが、何もわかりませんでした。 !自分がどれだけダメなのか気づいたんです。だから、わかるまで諦めないことにしました!次の情報が見つかりました。
2006-12-17 12:02:37
大、中、小
Model-View-Controller (MVC) は Xerox および PARC プログラミング言語です Smalltalk 1980 年代 - 1980 年代に発明され、今日まで広く使用されているソフトウェア設計パターン。近年では、Sun の J2EE プラットフォームの設計パターンとして推奨されており、ColdFusion や PHP を使用する開発者がますます多くなっています。 Model-View-Controller パターンは、多くの利点がある便利なツールボックスですが、いくつかの欠点もあります。
MVC の仕組み
MVC は、アプリケーションの入力、処理、出力の分離を強制する設計パターンです。 MVC を使用するアプリケーションは、モデル、ビュー、コントローラーの 3 つのコア コンポーネントに分割されます。彼らはそれぞれ独自のタスクを処理します。
ビュー
ビューは、ユーザーが表示して操作するインターフェイスです。旧式の 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 がもたらす追加の作業と複雑さに対処できる能力がある場合、MVC は堅牢性、コードの再利用、構造の点でソフトウェアを新しいレベルに引き上げます。
Java 開発 Web アプリケーションには、MVC 設計パターンに準拠したいくつかの開発方法があります。
1:Jsp サーブレット JavaBean(EJB)
2:Jsp JavaBean(コントローラー) JavaBean(EJB)(モデル)
3:TDK(タービン、速度... )
4:Xsp
5:Jsp Struts JavaBean(EJB)