そのため、この領域にはさまざまなデザインパターンがあります。
- モデルビュープレゼンター(mvp)
- モデルビュービュープレゼンター(mvvp)
- モデルビューコントローラー
- モデル2
等々。長年にわたり、これらはさまざまな状況で絡み合い、マッシュアップされ、変更され、適用されてきました。ここで重要なことは、1977年のMVCデザインパターンが大幅に変更され、サーバーサイドWebフレームワークで使用されているデザインパターンではなくなったことです。元のsmalltalk実装の例として、モデルは変更のビューを観察しますが、サーバーサイドはユーザーのブラウザーでhtml要素を単に観察することができないため、これは当てはまりません。代わりに、ビューが変更された場合、ビューはコントローラーにリクエストを送信し、コントローラーがビューを更新します。繰り返しますが、元のMVC実装は適用されません。モデルの更新は、モデルに依存するすべてのビューが更新されることを意味するためです。
最新のWebフレームワークは、モデル2アーキテクチャとも呼ばれる単純な3層アーキテクチャに従います。
もちろん、Webには実際のMVCアーキテクチャの例がありますが、これらは多くの場合クライアント側のみであり、モデル2アーキテクチャに従うサーバーに接続されています。ビューはxmlおよびjsonであり、変更は観察されません。クライアント側の純粋なmvcアーキテクチャの例は、Sencha TouchおよびSproutcoreです。
ブラウザーにMVCがあり、サーバーにmvcがあり、データレイヤーにmvcがある場合、階層mvc実装があります。
注意。Webフレームワークについてのみ説明しましたが、java swingやFlexなど、MVCの他の実装には他の実装の違いがあります。