235

「MVC、MVP、および MVVM デザイン パターンの違い」というフレーズを使用して Google を検索すると、理論的には次のような MVC MVP と MVVM デザイン パターンの違いについて説明している URL がいくつか表示される場合があります。

MVP

「dataContext」によるバインドが不可能な状況で使用します。Windows フォームは、この完璧な例です。モデルからビューを分離するには、プレゼンターが必要です。ビューはプレゼンターに直接バインドできないため、インターフェイス (IView) を介して情報をビューに渡す必要があります。

MVVM

「dataContext」によるバインドが可能な状況で使用します。なんで?各ビューのさまざまな IView インターフェイスが削除されているため、維持するコードが少なくなります。Knockout を使用して MVVM に WPF および JavaScript プロジェクトを含めることができるいくつかの例。

MVC

ビューと残りのプログラムの間の接続が常に利用できるとは限らない (MVVM または MVP を効果的に使用できない) 状況で使用します。これは、Web API がクライアント ブラウザーに送信されるデータから分離されている状況を明確に示しています。Microsoft の ASP.NET MVC は、このような状況を管理するための優れたツールであり、非常に明確な MVC フレームワークを提供します。


しかし、サンプル コードとともに理論的に違いを説明している記事は 1 つも見つかりませんでした。

この 3 つのデザイン パターン (MVC、MVP、MVVM) の違いをコードと共に説明する記事を入手できれば、非常にうれしいです。

これら 3 つの設計パターン (MVC、MVP、MVVM) で実装された3 つの類似のCRUDアプリのソース コードを入手したいと思います。コードを調べて、これら 3 つの設計パターン (MVC、MVP、および MVVM) のコードをどのように記述すべきかを理解できるようにします。

したがって、これら 3 つの設計パターン (MVC、MVP、および MVVM) でコードがどのように異なるかを説明している記事が存在する場合は、その記事にリダイレクトしてください。

4

6 に答える 6

123

Some basic differences can be written in short:

MVC:

Traditional MVC is where there is a

  1. Model: Acts as the model for data
  2. View : Deals with the view to the user which can be the UI
  3. Controller: Controls the interaction between Model and View, where view calls the controller to update model. View can call multiple controllers if needed.

MVP:

Similar to traditional MVC but Controller is replaced by Presenter. But the Presenter, unlike Controller is responsible for changing the view as well. The view usually does not call the presenter.

MVVM

The difference here is the presence of View Model. It is kind of an implementation of Observer Design Pattern, where changes in the model are represented in the view as well, by the VM. Eg: If a slider is changed, not only the model is updated but the data which may be a text, that is displayed in the view is updated as well. So there is a two-way data binding.

于 2016-04-16T20:12:13.447 に答える