0

iOS、Android、BlackBerry でストレージ (SQLite) を使用する PhoneGap モバイル Web アプリを使用しています。同じコードがすべてのプラットフォームで機能します。ただし、同じ Web アプリを使用して Chrome アプリも作成したいと考えています。Chrome のストレージ API はかなり異なるため、コードのストレージ部分を分離する必要があります。

私の考えは、Web アプリが PhoneGap ストレージと Chrome ストレージにアクセスするために使用する単一のストレージ API インターフェイスを作成することです。

使用できる既知のパターンですか、それとも既にこれを行っている JavaScript API ですか? 私の設計思想は正しいですか、それともより良いアプローチがありますか?

御時間ありがとうございます!

4

2 に答える 2

1

Sriram は、抽象インターフェースの必要性を無効にする可能性のある別のアプローチについて話しました。これは、最初に検討すべきことです。直接の質問にお答えします。

あなたのデザインの考えは健全で有効に思えます。これは Javascript では非常に可能であり、他の言語よりも簡単ですが、私にとっては常に安全ではないと感じています。

Javascript は静的に型付けされていません。つまり、抽象インターフェイスを使用できますが、どこでも宣言/定義する必要はありません。具体的な実装がすべての適切な機能を実装している限り、問題ありません。

具体的な例として、次のことができます。

メインファイル:

var gStorage = null
initStorage();
gStorage.load();
....
gStorage.save();

アプリ ストレージの実装:

var gAppStorage = {};

gAppStorage.load = function() {
  ...
}

gAppStorage.save = function() {
  ...
}

function initStorage() {
  gStorage = gAppStorage;
}

必要な他のストレージ プロバイダーについても同様です。次に、アプリで使用するプロバイダーの js のみを含めるだけで、機能するはずです。

Javascript は非常に柔軟で、これを行う方法には数え切れないほどの順列があります。これはあなたが行くことができる唯一の方法です。

于 2013-11-03T21:39:21.893 に答える