0

その場でのモデル注入は可能ですか? つまり、IPhotoModel 型のモデルを要求すると、ビューの現在の状態に基づいてその実装の 1 つを取得する必要があります。UserPage を見ている場合、そのモデルのユーザー固有の実装を取得する必要があります。LocationPage を見ている場合は、場所固有の実装を取得する必要があります。

現在、私が見る唯一の方法は、現在のビューステートに基づいた具体的なモデルマッピングを指定するコマンドを導入することです...

何かのようなもの...

インジェクター.mapValue(IPhotoViewModel、インジェクター.getInstance(UserPhotoViewModel))またはインジェクター.mapValue(IPhotoViewModel、インジェクター.getInstance(LocationPhotoViewModel))

これは可能な限り最良の方法ですか?コンテキストの外で多くの結合ロジックを導入したくはありませんが...

4

1 に答える 1

2

それが私のやり方であり、これが推奨される方法であると信じています。実際、RobotLegs の上級ユーザーの多くは、便宜上、再利用したり、プログラムを読みやすくしたりするために、ほとんどのマッピングをコマンドに分解していると思います (コマンドが起動時に 1 回しか実行されない場合でも)。モック サービスを実際のサービスに交換するなどの目的で使用しました。依存関係をマップするコマンドは異なりますが、他のすべては同じです。

私はこれを「それほど」の結合ロジックとは考えていません。コマンドは、現在のアプリケーションの状態に基づいてプログラムを設定しているだけです。Command を使用して Injector の状態を変更する場合と、独自のカスタム モデルの状態を変更する場合とでは、それほど大きな違いはありません。

コンテキスト全体を再利用することはできないかもしれませんが、アプリケーション全体で注入マッピング コマンドを再利用できることに気付くかもしれません。

HTH;

エイミー

于 2011-07-25T13:52:46.290 に答える