1

この質問に対する答えは、Androidアプリケーションの開発で使用されるデザインパターンであり、ユーザーインターフェイス要素の管理方法を簡素化して、アプリケーションのさまざまな場所から影響を受けましたが。UI要素を管理するためのAndroidデザインパターン

状態があまりにも少ない小さなアプリケーションでは、アクティビティライフサイクルメソッドでUI要素を管理するのが適切です。アプリケーションが大きくなり、メインスレッドの外のプロセスに基づいて状態を変更できる場合、変更が行われる場所の数が増加します。これにより、アプリケーションの保守性が低下します(多くの場所で状態が変化するコードを持つ)。私は、様々な州のUIに何が起こるかをより明確にするデザインパターンを模索しています。

SQLiteDatabaseSharedPreferencesなどのパーシスタンスツールが利用可能であることがわかりましたが、これはデザインパターンの一部である可能性がありますが、アプリの状態を維持できる中央制御機能と、ユーザーの表示内容ユーザーは目標を達成することができます。

+1

の例は、この質問はおそらく、広範に*道*です。 MVPパターンを見て、[公式アンドロイドコース](https://codelabs.developers.google.com/codelabs/android-testing/index.html?index=..%2F)があります。 。%2Findex#0) –

+0

「状態」によって、ログインできるアプリや、データベース1に接続できるかどうか、データベース2に接続されているかどうか、さまざまなサービス(および関連するUIコントロール)、これらの5つの状態のどれが現在の状態に一致するかによって異なります。 – Dale

+0

多分答えはMVPですか? Androidのアクティビティでは、UIとデータアクセスが密接に結合されているため、実装が難しいかもしれません。 – Dale

答えて

1

この目的で使用されている「MVP」(モデル/ビュー/プレゼンター)というパターンがあります。 This answerは、Androidフレームワークでプログラミングするときに、MVPがMVCトライアドより優先される理由を提供します。 this articleからキューを取る

、私たちは、このパターンの背後にある考え方は、プレゼンターモデルビューを分離することであることがわかります。

  • プレゼンター - MVCパターンと同様に、発表者はモデルからデータを取得し、ビューに返します。さらには、ビューと対話するときに何が起こるかを決定します。

  • ビュー - これは活動となり、プレゼンターを作成します。それは活動を聞きますが、何かをする代わりに、発表者に行動を取ることを要求します。

  • モデル - 表示したいデータの提供者。

作業MVPアプリケーションandroidmvp on github

+0

なんとなく制御不能だったアプリを書き直した後、これはうまくいっていると思います。 1つのレイヤーが多くの価値を追加していないように思われる、縦方向の繰り返しと呼ばれるものがたくさんありますが、それは私が書くことを認めているようなものです – Dale

関連する問題