私はこのOReilly bookから次のアイデアを多く取りました。これはちょうど私のために最もよく働いたものです。
は限りアーキテクチャが行くように、その私はPage ControllerパターンとしてAndroidのUIを考えるのを助けた - 私はそれが実際には.NET Webフォームに類似していることが判明しました。だから、それはMVC(少なくともページコントローラーの味)に適合します。アクティビティはコントローラであり、通常はXMLでビューを保存しますが、好きなようにモデルを構築できます。
あなたはAndroidで多くのWeb-ishアイデアを見ることができます。インテントは、HTTP、またはより一般的にはRESTによく似ています。インテントには、明示的なクラス宣言(具体的なアクティビティへ行く、またはインテントフィルタを使用してより暗黙的にすることができます)が関係する「名詞」があります。アクションはHTTP動詞とよく似ています、など)、バンドルはクエリ文字列パラメータやペイロードのリストのようなものです。
ウェブページと同様に、アクティビティが自分自身を世話できるようにしたいとします。私が言っていることは、アクティビティからアクティビティへの大きなシリアライズされたオブジェクトを渡したくないということです。そのクリーナー/復元力/信頼性は、特定のレコードのIDを次のアクティビティに渡して、 db(ContentProvider、その他の永続的なソース...)からそのIDで記録します。アクティビティーも疎結合を意図しており、さまざまなパスから1つにナビゲートできるようになっているはずです。また、それらを再利用可能にします。したがって、アクティビティの呼び出し元がrecordIdを提供するだけで、消費者が大きなシリアライズされたオブジェクトを提供することを期待するアクティビティがずっと簡単になります。
ボトムライン - いいえ、ビジネスロジックを使用したアクティビティを汚染する必要はありません。アプリケーションレイヤーやゲートウェイなどに埋め込む必要はありません。永続性については、ContentProviderインターフェイスはかなりうまく設計されています。私はそれが大好きです。 Android RESTfulテーマを継続し、URLや動詞(クエリ、削除、更新、挿入)を介してコンテンツにアクセスします。
私はそれを簡単に保つ方法だと思っています。本当のシンプル。 – keyser
これは本当の質問ではありません –
@Alex私は質問としてそれを表現していないかもしれませんが、それは確かに一つです。 – Machinarius