0

これがばかげた質問である場合は申し訳ありませんが、最近次のユースケースがあります。

再利用したいコンポーネントがあります。あるインスタンスではデータを編集できるようにしたいのですが、別のインスタンスではデータを表示できるようにしたいだけです。

したがって、これは、ある使用例では、ラベル 1、2、および 3 を編集ボタンと一緒にレンダリングしたいということを意味し、2 番目の使用例では、編集ボタンをレンダリングしたくないということです。

現在、私は mvp パターンを使用しており、現在、ロジックがプレゼンターに表示されるべきではないことを理解しています。

私の質問は、プレゼンターからのロジックに基づいてコンポーネントをレンダリングしたい場合、ビューにロジックを導入せずにこれを行う方法です。

短い例は大歓迎です:)

4

1 に答える 1

0

バックエンド> 送信 >モデル> へ >プレゼンター> 表示メソッドを呼び出す >ビュー

モデルは POJO (通常はバックエンドから取得された共有オブジェクト) になります。プレゼンターはそれを取得するために RPC 呼び出しを行います。モデルの構成に基づいて、プレゼンターは、モデルを受け取るときにビューで使用可能な「setAsEditable(Boolen editable)」メソッドを呼び出すかどうかを決定します。

ビュー> にイベントを送信 >プレゼンター> 更新 >モデル> そしてそれを >バックエンドに送信

ユーザーがビューに対して何らかのアクションを実行すると、プレゼンターは (イベントを通じて、またはインターフェイスに基づいて) その通知を受け取り、モデルを更新します。モデルの更新ロジック (表示ロジックなど) もプレゼンターにあることに注意してください。モデルは、プレゼンターによって (RPC 経由で) バックエンドにプッシュバックされます。ビジネス ロジックはバックエンドにとどまります。

個人的なメモ:

筋金入りの MVPer は、コンポーネント間の厳密な疎結合を強制しますが、多くの場合、多くのイベント クラスやインターフェイス (ボイラープレートと呼ぶ人もいます) を作成する必要があります。実用的であること。コンポーネントが再利用されないことがわかっている場合は、このアーキテクチャの使用を避け、再利用の必要性が生じるまで待つことがあります。

でも、純粋でいられるならそれでいい!

于 2013-08-09T19:16:38.610 に答える