質問

によると 太陽 そして msdn デザインパターンです。

によると ウィキペディア それは建築パターンです

デザインパターンと比較して、アーキテクチャパターンは規模が大きくなります。(ウィキペディア - 建築パターン)

それとも、デザインパターンも持つアーキテクチャパターンでしょうか?

どれが本当ですか?

役に立ちましたか?

解決

MVC はアーキテクチャ パターンに近いものですが、完全なアプリケーション向けではありません。MVC は主に、アプリケーションの UI / インタラクション層に関連します。ビジネス ロジック レイヤー、おそらくはサービス レイヤーとデータ アクセス レイヤーが必要になります。つまり、n 層アプローチを使用している場合です。

他のヒント

なぜそのうちの 1 つが真実でなければならないのでしょうか?

視点によっては、どちらも真実である可能性があります。

MVC がアプリケーション アーキテクチャの基礎を形成する場合、MVC はアーキテクチャ パターンになり得ます。

また、単なるデザイン パターン、つまりあらゆるアプリケーションに適用できる抽象的な概念とみなすこともできます。

デザインパターン 効果的にコードを書く方法を言う(考慮して) コードメトリクス).

いくつかの利点:

  1. メンテナンスが簡単
  2. 高い再利用性
  3. 抽象化されているため読みやすい

アーキテクチャパターン 資源を有効に活用する方法を教えてください。

  1. プログラマーやグラフィック デザイナーなどの並列タスクの実行は、並行して作業できます。
  2. ソフトウェアを構築するために複数のテクノロジーを利用できます。

MVCでは、 a)。 ビューは JavaScript テンプレートを使用して作成でき、HTML も使用できます。 b)。 コントローラーは .NET Framework で作成でき、 c)。 モデルは Java で記述できます。json データのみを返す Java サービスを使用できます。

デザインパターン中、パターン できない で実装される コードは、JavaのAdminUserクラスなどの複数のテクノロジーで記述できます。 C# の Customer クラス、PHP の Partners クラス、Ruby のファクトリ パターン :);うーん、とても簡単ですか?:)

少し前に答えが出ていることは知っていますが、MVC を有名にした本についてはまだ誰も言及していません。パターン指向ソフトウェア アーキテクチャ (POSA)、Buschmann ら著、1996 年発行。Gamma らによる『Design Patterns』ほど広く読まれているわけではありませんが、POSA はパターン コミュニティで使用される基礎的な本の 1 つです。

ああ、POSA は MVC をアーキテクチャ パターンとして明確に識別します。私の予感では、MS と Sun は単にいい加減で、すべてのパターンを「デザイン パターン」と呼んでいるだけではないかと思います。

どちらも真実だと思います。特定のものを見ている場合 インスタンス化 Ruby on Rails のようなフレームワークにおける MVC の場合、そのインスタンス化はむしろ設計パターンです。MVC を次のように考えると、 一般的な概念, 、それはむしろアーキテクチャパターンです。

MVC は、ソフトウェア アーキテクチャの書籍で常にプレゼンテーション層として言及され、紹介されています。

これらの本を読んでください:

  1. エンタープライズ向けの Microsoft.NET ソリューションの設計 (マイクロソフトプレス)

  2. プロフェッショナルな ASP.NET デザイン パターン (ロックス)

  3. Microsoft.NET を使用したエンタープライズ ソリューション パターン (マイクロソフトプレス)

  4. エンタープライズ アプリケーション アーキテクチャのパターン (アディソン・ウェスリー)

  5. エンタープライズ アーキテクチャの実践ガイド (プレンティスホール)

10 人のソフトウェア アーキテクトを部屋に集めて、Model-View-Controller パターンとは何かについて議論させた場合、最終的には 12 の異なる意見が生まれるでしょう。…世の中の純粋主義者の中には、私が「MVC」と呼んでいるものに違和感を覚える人もいるでしょう。この Web ページの下部にある掲示板に、お気軽に炎上コメントを残してください。MVC が何を意味するかについて、さまざまな視点を喜んで受け入れますが、私は気にしないことに留意してください。

ジョシュ・スミス

モデル/ビュー/コントローラー (MVC) の 3 つのクラス内の設計パターンには以下が含まれますが、これらに限定されるわけではありません。

  • 観察者, 、オブジェクトを分離することで、変更されたオブジェクト (モデル) が他のオブジェクト (ビュー) の詳細を知る必要がなく、1 つ (モデル) への変更が他のオブジェクト (ビュー) に任意の数に影響を与えることができます。

  • 複合, これにより、グループ オブジェクト (複合ビュー) を、その個別のオブジェクト (ビュー コンポーネント) の 1 つを扱うのと同じように扱うことができます。

  • 戦略, ここで、ビューはコントローラー サブクラスのインスタンスを使用して、特定の応答戦略を実装します。別の戦略を実装するには、インスタンスを別の種類のコントローラーに置き換えるだけです。

  • ファクトリーメソッド, 、ビューのデフォルトのコントローラー クラスを指定します。

  • デコレーター, 、ビューにスクロールを追加します。


参照

  • ページ 4 ~ 6 (セクション 1.2 Smalltalk MVC のデザイン パターン)
  • 293~304ページ(オブザーバーデザインパターン)
  • 163~174ページ(複合デザインパターン)
  • 315~324ページ(戦略設計パターン)
  • 107~116ページ(ファクトリーメソッドデザインパターン)
  • 175~185ページ(デコレータデザインパターン)

エリック・ガンマ、リチャード・ヘルム、ラルフ・ジョンソン、ジョン・ブリシデス。 デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素. 。アディソン・ウェスリー、マサチューセッツ州レディング、1994 年。

Martin Fowler によれば、これらは GUI アーキテクチャです。 Martin Fowler-GUI アーキテクチャ

これはアプリケーションのサイズによって異なります。これは GUI 関連のクラスにのみ影響するため、小規模なもの (主に GUI) ではアーキテクチャ パターンとみなされますが、大規模なものでは GUI に適用する単なる設計パターンになります。コード (アプリ コードの 10% である可能性があります)。

MVCはアーキテクチャパターンです。非常に明確に記載され、示されています http://molecularsciences.org/zend/mvc_model_view_controller

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top