2012-01-26 8 views
0

チュートリアルの中には、「表示」という意味が理解できないものがあります。より正確に - 同時に表示できるビューの数はわかりません。私が読んだチュートリアルでは、同時に1つのビューしか表示されず、常にフルスクリーンを占めています。たとえば、私はポップアップパネルを表示する必要がある場合は、通常このポップアップパネルの新しいビューを作成することですか?このポップアップパネルを別のビューに含めると良いでしょうか?MVPパターンの「表示」とは何ですか?

答えて

1

必要なだけ多くのビューを表示できますが、MVPパターンは表示されません。ビューの視点からMVPはModel-View-Presenter間の関係を記述しますが、どのビューも独自のプレゼンターとバインドされたモデルを持つ子ビューを持つことができます。

共通のシナリオ - 子ビューのセット間で自分のスペース/レイアウトを分割するメインビューを持ち、それぞれが独自のプレゼンターを持ち、独自/共有モデルを使用します(アプリケーションの仕様とデザインによって異なります)。

1

これは、使用する実装に完全に依存します。

たとえば、ASP.NET MVCの実装では、複数の部分ビューが同時に表示されることがあります(ただし、メインビューは1ページのみです)。一方、デスクトップアプリケーションでは、独自の専用ビュー。スマートフォンアプリには、いつでもアクティブなビューが1つだけ開いている可能性があります。

1

理論的には、Viewはモデルを表現していると仮定します。モデルからデータ変換と計算を行い、データを抽出し、ビューに素敵なフォーマットを入れます。

実際には、Viewはすべてのユーザーに表示されます。 JFrame(Java)、Activity(Android)、Windows Formsはビューの例です。

1

たとえば、表示用ポップアップパネルが必要な場合は、通常、このポップアップパネル用に新しい ビューを作成しますか?またはこのポップアップパネルを別のビュー に含めると良いですか?

ポップアップをコーリングビューの一部として扱う場合は、ポップアップショーの場合はビューを保持することをお勧めします。

P.S. 概念的には、ビューをUIコンポーネントのツリーとして扱うこともできます。 たとえば、ツリーは2つのUIコンポーネントで構成されています。 最初に1つのApplicationWindowと2つ目のApplicationWindow(ポップアップに表示されます)PatientEditorを呼び出してみましょう。 PatientEditorはApplicationWindowの子であるため、同じビュー(UIコンポーネントのツリー)に表示することはできます。

関連する問題