2

com.companyname.appnameというパッケージに合計29のクラスがあるEclipseを使用してAndroidアプリケーションを開発しています。この29のクラスには、Activities、List Fragments、Loaders、Service、DbHelper、Jsonparser、Adapter、およびNetworkConnectionクラスが含まれています。

以下のようにパッケージを分ける予定ですが、

方法 1:

  • com.companyname.appname.activities (アプリケーションのすべてのアクティビティクラスを含む)
  • com.companyname.appname.services (アプリケーションのすべてのサービスクラスを含む)
  • com.companyname.appname.loaders (アプリケーションのすべてのローダークラスを含む)
  • com.companyname.appname.fragments (アプリケーションのすべてのフラグメントクラスを含む)
  • com.companyname.appname.database (アプリケーションのすべてのデータベースヘルパー クラスを含む)
  • com.companyname.appname.utilities (アプリケーションの他のユーティリティ クラス(Jsonparser、Netwrok 接続検出、SimpleCursorAdapter) を含む)

方法 2:

  • アクティビティごとに各パッケージを分離します (関連するフラグメント、ローダー、ユーティリティ、サービスなどが含まれます)。

効率の良い方法はどれ?または、パッケージを別の方法で効率的に分離する必要がありますか? Androidコード設計におけるパッケージ分離のベストプラクティスは何ですか?

4

2 に答える 2

2

パッケージの目的は整理のためだけです。最初の方法では、あまり考えずに新しいクラスを配置して簡単に見つけることができます。

一部のクラスは複数のパッケージに分類できるため、2 番目の方法はいつか難しくなります。

于 2012-12-29T08:18:58.770 に答える
2

大部分は好みの問題です。いくつかの基準に関しては、他の種類のカプセル化と同様に、以下を適用できます。

  1. 疎結合

  2. 緊密な結束

つまり、関連のないパーツ間の不要な依存関係を避け、一緒に属するものをグループ化します。

パッケージが別のアプリケーションまたは別のタイプのビルド (電話/タブレット、Google/Amazon) で再利用される可能性があると考えてください。または、逆に、特定のケースに固有すぎて再利用できないもの。

そのような推論は、恣意的な選択ではなく、いくつかのニーズに基づいてコードを構築するのに役立ちます。

編集:逸話的なアナロジー。ファイルをフォルダーに配置することに関する推奨事項、私の知る限り、Microsoft はかつて「オブジェクト指向」の UX を説明していました。1 つは、Word 文書、Excel スプレッドシートなどのフォルダーを作成する方法です。もう 1 つは、Business、Entertainment などのフォルダーを作成する方法です。どのパッケージにも同じアプローチが適用されます。

于 2012-12-29T08:26:20.923 に答える