最近、MVC (Model View Controller) という言葉がバズっているのをよく耳にしますが、それは一体何なのでしょうか?
13 に答える
Martin Fowler のサイトで、Martin Fowler が MVC、MVP、および UI アーキテクチャ全般について述べていることを参照してください。
Martin Fowlerのこの記事が好きです。厳密に言えば、MVC は本来の豊富な UI プログラミングの領域では多かれ少なかれ死んでいることがわかるでしょう。View と Controller の違いは、ほとんどの最新の UI ツールキットには当てはまりません。
この用語は、最近 Web プログラミング界で新たな命を吹き込まれたようです。ただし、それが本当に MVC なのか、それとも密接に関連しているが微妙に異なるアイデアに名前を再利用しているだけなのかはわかりません。
MVC は、もともと smalltalk の時代に開発された設計パターンです。
コンセプトは、モデルがアプリケーションの状態とロジックを表し、コントローラーが「ビュー」間の IO を処理するというものでした。
ビューは、モデル内の状態の表現でした。たとえば、モデルがスプレッドシート ドキュメントであり、それをスプレッドシートとして表すビューとピボット テーブルとして表すビューがあるとします。
最新の MVC は、偽の MVC Web ジャンクで汚染されているため、他の人に回答してもらいます。
MVC の素朴な説明は次のとおりです: http://www.devcodenote.com/2015/04/mvc-model-view-controller.html
スニペット:
定義 : アプリケーションを複数の機能層に分割する設計パターンです。
層:
モデル データを表します。これは、データベースとアプリケーションの間のインターフェイスとして (データ オブジェクトとして) 機能します。検証、関連付け、トランザクションなどを処理します。
コントローラ データを収集して処理します。データ選択とデータ メッセージングを行うコードを処理します。
View 出力をユーザーに表示します。
MVC 設計パターン:
4 つの部分 = ユーザー、ビュー、コントローラー、モデル。
ユーザー: - ビューを見て、コントローラーを使用します。
モデル: - データを保持し、新しいデータ/状態があるモデルを更新します。
表示: - モデルが持つデータを表示します。
コントローラー: - 情報を取得または設定するためのユーザーからの要求を受け取り、ビューまたはモデルのいずれかと通信します。- ビューを介して「取得」します。- モデルを介して「設定」します。
あなたの質問のタグには、そのデザインパターンが記載されています。しかし、それはおそらくあなたを助けません。基本的には、さまざまな部分を分離して簡単に変更できるように、コードを論理グループに編成する方法です。
簡略化: モデル = データ構造 / ビジネス ロジック ビュー = 出力層 (つまり、HTML コード) コントローラー = メッセージ転送層
したがって、人々が MVC について話すとき、彼らが話しているのは、コードをこれらの論理グループに分割して、クリーンで構造化された状態に保ち、できれば疎結合にすることです。この設計パターンに従うことで、コントローラーやモデルに手を加えることなく (つまり、HTML から RSS に切り替えるなど)、View を別のものに完全に変更できるアプリケーションを構築できるはずです。
そこにはたくさんのチュートリアルがあります.
MVCまたはModel-View-Controllerユーザーインターフェイスパラダイムは、XeroxPARCのTrygveReenskaugによって最初に説明されました。1981年8月にバイトマガジン第6巻第8号に最初に印刷されました。
ウィキペディアは、これまでのところそれを最もよく説明しているようです:
http://en.wikipedia.org/wiki/Model-view-controller
モデル ビュー コントローラー (MVC) は、ソフトウェア エンジニアリングで使用されるアーキテクチャ パターンです。パターンを適切に使用すると、ビジネス ロジックがユーザー インターフェイスの考慮事項から分離され、アプリケーションの外観または基礎となるビジネス ルールのいずれかを、他方に影響を与えることなく簡単に変更できるアプリケーションになります。MVC では、モデルはアプリケーションの情報 (データ) と、データの操作に使用されるビジネス ルールを表します。ビューは、テキスト、チェックボックス項目などのユーザー インターフェイスの要素に対応します。コントローラーは、キーストロークやマウスの動きなどのユーザーアクションのモデルへの通信を含む詳細を管理します
MVC は、表現をユーザー操作から分離するソフトウェア アーキテクチャ パターンです。一般に、モデルはアプリケーション データとそれと対話する関数で構成され、ビューはこのデータをユーザーに提示します。コントローラーは 2 つの間を仲介します。
このOreilly のWhat is MVCブログ記事で説明しました。
これは、アプリケーション (モデル) の基礎となる機能を、ユーザーと対話する方法 (ビュー) から分離する方法です。コントローラーは、モデルとビューが互いにどのように対話するかを調整します。
現時点では大流行していますが、モデル自体がそのデータをユーザーにどのように提示するかを正確に判断できないことは、ネガティブなことと見なされる可能性があることを覚えておくことが重要です。最もわかりやすい例は HTML です。HTML の当初の意図は、コントローラー (ブラウザー) を介してモデル (HTML) をビュー (レンダリングされた Web ページ) から明確に分離することでした。この本来の意図に対する反発があり、ブラウザがページ ピクセルをデザイナーの望むビューに完全にレンダリングしないと批判されるほどです。
多くの人がすでに言っているように、MVC はデザイン パターンです。私は今、同僚の一人に教えていて、次のように説明しています。
モデル- データ アクセス層。これは、直接データ アクセス、Web サービスなどです。
ビュー- アプリケーションのプレゼンテーション層。
コントローラー- これは、アプリケーションのビジネス ロジックです。
このパターンは、テスト駆動開発を強化します。
MVC は、ユーザー インターフェイス要素を 3 つの異なる概念に分割する方法です。モデルは、インターフェースが動作するデータです。ビューは、要素がどのように視覚的に (または聴覚的に) 表現されるかです。コントローラーは、データを操作するロジックです。
たとえば、UI で操作したいテキストがあるとします。単純な文字列でデータを表すことができます。ビューはテキスト フィールドである可能性があります。コントローラーは、ユーザーからの入力 (文字入力やマウス入力など) を変換し、基になるデータ モデルに変更を加えるロジックです。