1

私は2つのアプローチを考えています

  • JSON 応答を JSON ファイルとしてキャッシュする
  • Reservoir を使用して Java POJO をキャッシュします (JSON 応答は、Retrofitを使用して既にシリアル化解除されています)。

データの説明:
ここでキャッシュしたいデータは、e コマース サイトの 20 個の製品のリストです。これらは複雑なオブジェクトではなく、jsonapi.org の仕様がここで使用されているため、ネストはありません。Retrofit を使用すると、Product が 10 個未満の属性を持つ Java モデル クラスである 20 個の Product POJO を既に取得できます。

どちらのアプローチが優れているか、またその理由は?

SQLite データベースは、より高価で、次の場合にのみ適していると思うので、考慮していません。

  • データの整合性が必要
  • ショッピングカートなどの書き込み操作があります
  • 複雑な関係を持つ大量のデータ
4

1 に答える 1

1

それは実際には 2 つの主な要因に依存します。

自分に合っていると思われるものを使用できます。DBのようなデータ構造と複雑なクエリメカニズムが本当に必要な場合は、SQLiteで問題ありません。役立つ場合は、GreenDAO や ORMLite などの ORM システムで SQLite をラップできます。オブジェクト指向のアプローチであるレルムもあります(問題があります)。

また、SharedPreferences を選択することもできます (個人的にはこのアプローチは嫌いです)。POJO を parcelable または Java Serialization でファイルにシリアル化することもできます。どのアプローチにも長所と短所があるため、何を達成したいかによって異なります。

SQL 指向の DB の場合、SQL の大きなユーザー ベースがあります

レルムは、モバイル デバイス DB の次の大きな要素になる可能性があります (良い) が、まだ未熟であり、取得時に具象クラスを使用する必要がある (悪い)、抽象/インターフェイス/基本クラスが必要になる場合があります。

Parcelable - 大量のコードを書かなければならない (悪い) が、かなり速い (良い)

Java シリアライゼーション - シリアライズ可能なクラスのリファクタリングが容易で、シリアライゼーション用のコードがなく、少量から中量のデータに適しています。リフレクションを使用するため、非常に大量のデータには適していません。

于 2016-07-22T10:41:06.713 に答える