ウィキペディアによるとそれは建築パターンです
デザイン パターンに比べて、アーキテクチャ パターンは規模が大きくなります。(ウィキペディア -建築パターン)
それともデザインパターンも持つ建築パターンですか?
どれが本当ですか?
MVC はアーキテクチャ パターンに近いものですが、完全なアプリケーション向けではありません。MVC は主に、アプリケーションの UI/インタラクション レイヤーに関連しています。ビジネスロジックレイヤー、おそらくサービスレイヤーとデータアクセスレイヤーが必要になるでしょう。つまり、n層アプローチに興味がある場合です。
なぜそれらの1つが真実でなければならないのですか?
見方によっては、どちらも真である可能性があります。
MVC がアプリケーション アーキテクチャの基礎を形成する場合、MVC はアーキテクチャ パターンになる可能性があります。
また、単なる設計パターン、つまりあらゆるアプリケーションに適用できる抽象的な概念と見なすこともできます。
デザイン パターンは、コードを効果的に記述する方法を示します (コード メトリクスを考慮して)。
いくつかの利点:
アーキテクチャ パターンは、リソースを効果的に利用する方法を示します。
MVC では、 a)。ビューは JavaScript テンプレートを使用して作成でき、html も使用できます b)。コントローラーは、.NET フレームワークおよび c) で記述できます。モデルは Java で記述できます。json データのみを返す Java サービスを使用できます。
デザインパターンではJavaのAdminUserクラス、C#のCustomerクラス、PhpのPartnersクラス、Rubyのファクトリーパターンのように複数の技術でコードを書けるパターンは実装できません:); うーん..とても簡単?:)
少し前に回答があったことは知っていますが、MVC を有名にした本、1996 年に出版された Buschmann 氏による Pattern-Oriented Software Architecture (POSA) についてはまだ誰も言及していません。 、Gamma などによる POSA は、パターン コミュニティによって使用される基本的な書籍の 1 つです。
ああ、POSA は MVC をアーキテクチャ パターンとして非常に明確に識別します。私の推測では、MS と Sun は単にずさんで、すべてのパターンを「デザイン パターン」と呼んでいます。
クラスのモデル/ビュー/コントローラー (MVC) トライアド内の設計パターンには、以下が含まれますが、これらに限定されません。
オブザーバー、オブジェクトを分離して、変更されたオブジェクト (モデル) が他のオブジェクト (ビュー) の詳細を知る必要なく、1 つのモデル (モデル) への変更が他のオブジェクト (ビュー) の任意の数に影響を与えることができるようにします。
Composite : グループ オブジェクト (複合ビュー) を、個々のオブジェクト (ビュー コンポーネント) の 1 つを扱うのと同じように扱うことができます。
Strategy。ビューは Controller サブクラスのインスタンスを使用して、特定の応答戦略を実装します。別の戦略を実装するには、インスタンスを別の種類のコントローラーに置き換えるだけです。
ビューのデフォルトのコントローラ クラスを指定するFactory Method 。
ビューにスクロールを追加するDecorator 。
参照
エリック・ガンマ、リチャード・ヘルム、ラルフ・ジョンソン、ジョン・ブリシズ。デザイン パターン: 再利用可能なオブジェクト指向ソフトウェアの要素。Addison-Wesley、レディング、マサチューセッツ州、1994 年。
どちらも本当だと思います。Ruby on Rails のようなフレームワークで MVCの特定のインスタンス化を見ている場合、そのインスタンス化は設計パターンに近いものです。MVC を一般的な概念として見ると、それはアーキテクチャ パターンに近いものになります。
MVC は、ソフトウェア アーキテクチャの本でプレゼンテーション レイヤーとして常に言及され、紹介されています。
これらの本を読んでください:
エンタープライズ向けの Microsoft.NET ソリューションの設計(マイクロソフト プレス)
Microsoft.NET を使用したエンタープライズ ソリューション パターン(マイクロソフト プレス)
エンタープライズ アプリケーション アーキテクチャのパターン(Addison Wesley)
エンタープライズ アーキテクチャの実践ガイド(Prentice Hall)
10 人のソフトウェア アーキテクトを部屋に集めて、Model-View-Controller パターンとは何かについて話し合うと、12 の異なる意見が生じることになります。…純粋主義者の中には、私が「MVC」と呼んでいるものに必然的に不安を感じる人もいます。この Web ページの下部にあるメッセージ ボードに、熱烈なコメントを残してください。MVC が何を意味するかについて、さまざまな視点を喜んで提供しますが、気にしないことを覚えておいてください。
ジョシュ・スミス
Martin Fowler によれば、それらは GUI アーキテクチャです: Martin Fowler-GUI アーキテクチャ
GUI 関連のクラスにのみ影響するため、アプリケーションのサイズによって異なります。小さなもの (ほとんどが GUI) ではアーキテクチャ パターンと見なすことができますが、巨大なものでは GUI に適用するデザイン パターンにすぎません。コード (アプリ コードの 10% になる可能性があります)。
MVC はアーキテクチャ パターンです。非常に明確に述べられており、http://molecularsciences.org/zend/mvc_model_view_controllerで示されています