Mvvm-introduction
提供:Dev Guides
MVVM –はじめに
コードを整理するための、よく整理された、おそらく最も再利用可能な方法は、「MVVM」パターンを使用することです。 * Model、View、ViewModel(MVVMパターン)*は、メンテナンス可能、テスト可能、および拡張可能なアプリケーションを作成するためのコードの整理と構造化の方法をガイドするものです。
モデル-データを保持するだけで、ビジネスロジックとは関係ありません。
*ViewModel* -モデルとビューの間のリンク/接続として機能し、見た目を美しくします。
表示-フォーマットされたデータを保持し、基本的にすべてをモデルに委任します。
分離プレゼンテーション
アプリケーションロジックを分離コードまたはXAMLに配置することによって生じる問題を回避するには、分離プレゼンテーションと呼ばれる手法を使用するのが最善です。 ユーザーインターフェイスオブジェクトを直接操作するために最低限必要なXAMLとコードビハインドがある場合、これを回避しようとしています。 ユーザーインターフェイスクラスには、次の左側の図に示すように、複雑な対話動作、アプリケーションロジック、およびその他すべてのコードも含まれています。
- 分離されたプレゼンテーションでは、ユーザーインターフェイスクラスがはるかに簡単です。 もちろんXAMLがありますが、コードビハインドは実用的ではありません。
- アプリケーションロジックは、多くの場合モデルと呼ばれる別のクラスに属します。
- ただし、これはすべてではありません。 ここでやめた場合、データバインディングの狂気の道をたどる非常に一般的な間違いを繰り返す可能性があります。
- 多くの開発者は、データバインディングを使用してXAMLの要素をモデルのプロパティに直接接続しようとします。
- 今ではこれで問題ない場合もありますが、そうでない場合もあります。 問題は、モデルがユーザーのアプリケーションとのやり取りではなく、アプリケーションの動作に完全に関係していることです。
- データを提示する方法は、多くの場合、内部的に構造化されている方法とは多少異なります。
- さらに、ほとんどのユーザーインターフェイスには、アプリケーションモデルに属さない状態があります。
- たとえば、ユーザーインターフェイスでドラッグアンドドロップを使用している場合、ドラッグ中のアイテムが現在どこにあるか、可能なドロップターゲット上を移動するときに外観がどのように変化するか、ドロップターゲットがどのようになり得るかなどを追跡する必要がありますアイテムがそれらの上にドラッグされると変化します。
- この種の状態は驚くほど複雑になる可能性があるため、徹底的にテストする必要があります。
- 実際には、通常、ユーザーインターフェイスとモデルの間に他のクラスを配置する必要があります。 これには2つの重要な役割があります。
- まず、アプリケーションモデルを特定のユーザーインターフェイスビューに適合させます。
- 第二に、重要な相互作用ロジックが存在する場所であり、それによって、ユーザーインターフェイスを希望どおりに動作させるために必要なコードを意味します。