15

JSON API と通信する iPhone/iPad/Android アプリに取り組んでいます。

アプリのバージョンの最初のリリースが完了し、現在、開発の追加フェーズが行われています。追加フェーズでは、アプリを新しいバージョンの API と統合し、ユーザーが新しい画面や既存の画面内の変更された動作などの追加機能にアクセスできるようにする必要があります。ただし、アプリは以前のバージョンの API と逆にする必要があります。

このような要件に取り組むためのベストプラクティスは何ですか? コード全体でチェックを行うことができます:

if (APIVersion == 1) {

} else if (APIVersion == 2) {

} else if (APIVersion == ....) {

}...

しかし、私はこのアプローチのスケーラビリティについて懸念しています。ファクトリメソッドが思い浮かびますが、これがどこまで続くかはわかりません。

ありがとう、マーク

4

2 に答える 2

2

あなたはすでに懸念の分離を持っていると思います。つまり、アプリのデータの取得はモデルを介してのみ行われます (たとえば)。

したがって、モデルを変更するだけです。

私が提案するのは、「ルーター」ファイルというエントリ ポイントが 1 つしかないということです。このファイルは、必要な API バージョンをチェックし、正しいファイルをロードします。このようにして、API ごとに異なるファイルを取得します。「ルーター」ファイルはそれほど大きくなく、新しい API バージョンごとに独自のファイルがあるため、すべてを混在させる必要はありません。

たとえば、「ルーター」ファイルでは次のようになります。

function dispatch() {
    switch (APIVersion) {
    case 1:
        use('file.1.ext');
        break;
    case 2:
        use('file.2.ext');
        break;
    case 3:
        use('file.3.ext');
        break;
    }
}
于 2012-05-23T09:18:15.183 に答える