プレゼンターの役割を活動から切り離すことで、どのような利点が得られるでしょうか。
活動をプレゼンターから分析するために分離できる役割/懸念は何ですか?
なぜそれらを2つの異なる懸念に分けたいのですか?
どのような状況で、それらを統合しないことが理にかなっていますか?
例、賛否両論を挙げてください。
プレゼンターの役割を活動から切り離すことで、どのような利点が得られるでしょうか。
活動をプレゼンターから分析するために分離できる役割/懸念は何ですか?
なぜそれらを2つの異なる懸念に分けたいのですか?
どのような状況で、それらを統合しないことが理にかなっていますか?
例、賛否両論を挙げてください。
プレゼンターをアクティビティから切り離す主な理由は 2 つあります。それは、再利用性とテスト容易性です。
再利用性の実際の使用例:ドキュメントにリンクできる、写真家、著作権、撮影日などのプロパティを持つイラスト エンティティがあります。の凡例は、ドキュメントとイラストの関係にあります。イラストと凡例の両方を独自の画面で編集できますが、イラストは凡例画面からも編集できるようにしたいと考えていました。そこで、イラスト画面のプレゼンターを作りました。illustration アクティビティはそのプレゼンターの非常に薄いラッパーであり、legend アクティビティはもう少し複雑ですが、プレゼンターとビューを再利用します。アクティビティの責任は、 を提供しRequestContext
、実行することですfire()
(保存/キャンセル ボタンは、Google グループのアクションと同様に、別のアクティビティにあります)。
再利用性のための仮想ユースケース:
テスト容易性について(これは理論上のことです)、アクティビティ ライフサイクルの手間をかけずにプレゼンターをテストし (ビューをモックする)、ライフサイクルを個別にテストできます (プレゼンターを正しく初期化してクリーンアップし、データをフェッチ/キャッシュし、プレゼンターを嘲笑するなど)。
のコミット メッセージも参照してください。
今日。外から見ると、それらはあなたが望むように構成できる単なるウィジェットです。内部では MVP を使用しているため、必要なくテストできますGWTTestCase
。
まず最初に、これまでで最も長い調査に私を駆り立てた質問に感謝します。:)
トモス・ブロイヤーによると、こちら。
アクティビティは、プレゼンターができるウィジェットと話すことはできません。
主な懸念事項は次の 2 つです。
1- データをウィジェットに入れる: このデザインをどのように改善できますか?
Server (RequestFactory) ---> Activity ---> WidgetPresenter ---> Widget
ここでRequestFactory
は にデータを渡し、Activity
はそれを に渡し、次に は に渡しPresenter
ますwidget
。
widgets
2- からへのデータの取得server
widget ---> WidgetPresenter ---> Activity ---> Server(RequestFactory)