1

これが、MonoDroidアプリでMVP(またはより具体的にはパッシブビュー?)を使用する私の試みです。

https://gist.github.com/857356

私の主な目標は再利用ではなく、テスト容易性の向上と(願わくば)保守性の向上です。再利用は素晴らしい副作用ですが、私は現在、MonoTouchバージョンなどを実行する予定はありません。

私は一般的にそれでかなり満足しています(1つの例外を除いて)、しかし私は確かにいくつかの批評/評価が必要です。

唯一の例外:メソッド "GetPortfolioIdForContextMenu"は'int'を返しますが、残りのメソッドがそれを行う必要がないため、これは完全に正しく感じられません。気分が悪いだけなのに、「なぜ」とか、どうしたらいいのかわからない。

4

3 に答える 3

3

MVVM パターンを検討しましたか? Android プロジェクトではまだ使用していませんが、WPF 開発で使用しています。ViewModel が View の存在を認識しない点を除けば、MVP と非常によく似ています。MVVM は通常、データバインディングをサポートする言語でのみ可能です。

いくつかの便利なリンク:

  1. ウィキペディアMVVM
  2. その背後にある動機となるAndroid Binding プロジェクトが必要になります。[主な利点: テスト]
  3. Android での MVVM のチュートリアル

これが役立つことを願っています。

-JP

編集:MonoDroidを使用していることに気付きました. これはあまり役に立たないかもしれません。たぶん、他のインターネット検索者にとっては役に立つでしょう。

于 2011-03-15T21:43:31.853 に答える
1

onCreateContextMenuには、コンテキストメニューが作成されるビューが含まれています。ポートフォリオIDを各ビューのタグとして設定し、onCreateContextMenuで使用できます。HTH!

于 2011-03-16T15:29:42.380 に答える
1

私は見てみました。GetPortfolioIdForContextMenuクラスからメソッドを削除MainActivityして値を直接操作しない限り、この小さな「間違い」を削除するために再構築する方法がわかりません(_presenterメインクラスでアクセスできGetPortfolioIdForContextMenu、1か所でのみ使用するため) . この場合、プレゼンターは引き続きその役割 (取得、永続化、フォーマット) を維持します。

「実際の」プロジェクトでは、ルールを破らなければならないことがあります。今回は少しの矛盾があってもMVPの精神を保っていたと思います。

于 2011-03-15T14:59:52.440 に答える