回答:
MVCはよりアーキテクチャー的なパターンですが、完全なアプリケーションではありません。MVCは主にアプリケーションのUI /インタラクションレイヤーに関連しています。あなたはまだビジネスロジック層、おそらくいくつかのサービス層とデータアクセス層を必要としています。つまり、n層アプローチの場合です。
デザインパターンは、コードの効率的な記述方法を示します(コードメトリックを考慮)。
いくつかの利点:
建築パターンは、リソースを効果的に利用する方法を示しています。
MVCでは、 a)。ビューは、JavaScriptテンプレートを使用して作成でき、HTMLも使用できます b)。コントローラーは.NETフレームワークとc)で作成できます 。モデルはJavaで作成できます。jsonデータのみを返すJavaサービスを使用できます。
デザインパターンでは、JavaのAdminUserクラス、C#のCustomerクラス、PhpのPartnersクラス、Rubyのファクトリーパターンなど、複数のテクノロジーでコードを記述できるパターンを実装することはできません。hmmm ..とても簡単?:)
クラスのモデル/ビュー/コントローラー(MVC)トライアド内の設計パターンには、次のものが含まれ、これらに限定されない場合があります。
オブジェクト(モデル)が他の(ビュー)の詳細を知る必要なく、1つ(モデル)への変更が他の任意の数(ビュー)に影響を与えることができるようにオブジェクトを分離するオブザーバー。
Composite。グループオブジェクト(複合ビュー)を、個別のオブジェクト(ビューコンポーネント)の1つと同じように扱うことができます。
Strategy、ビューはControllerサブクラスのインスタンスを使用して特定の応答戦略を実装します。別の戦略を実装するには、インスタンスを別の種類のコントローラーに置き換えるだけです。
ビューのデフォルトのコントローラクラスを指定するファクトリメソッド。
ビューにスクロールを追加するデコレータ。
参照
エリックガンマ、リチャードヘルム、ラルフジョンソン、ジョンヴリサイドズ。設計パターン:再利用可能なオブジェクト指向ソフトウェアの要素。Addison-Wesley、レディング、MA、1994。
MVCは、ソフトウェアアーキテクチャブックのプレゼンテーション層として常に言及および紹介されています。
これらの本を読んでください:
企業向けのMicrosoft.NETソリューションの設計(Microsoftプレス)
プロフェッショナルASP.NETデザインパターン(Wrox)
Microsoft.NETを使用したエンタープライズソリューションパターン(Microsoft Press)
エンタープライズアプリケーションアーキテクチャのパターン(Addison Wesley)
エンタープライズアーキテクチャの実践ガイド(Prentice Hall)
そして、Martin Fowlerによると、それらはGUIアーキテクチャです:Martin Fowler-GUIアーキテクチャ
GUIに関連するクラスにのみ影響を与えるため、アプリケーションのサイズに依存します。小さいもの(主にGUI)ではアーキテクチャパターンと見なすことができますが、大きいものではGUIに適用するデザインパターンにすぎません。コード(アプリのコードの10%になる可能性があります)。
MVCはアーキテクチャパターンです。http://分子科学.org / zend / mvc_model_view_controllerで非常に明確に示され、示されている