私はイベント送信に使用されるアプリケーションを書いています。現状のままでアプリケーションは完了しますが、将来はアプリケーションに追加されます。これらの追加は新しいバージョンになります。私の質問は、実際にそれらのバージョンを実装する方法です。確かに "if version == xx"に行くことができますが、コンストラクタのあらゆるメソッドでこれを行うということは、正確な解決策ではないようです。そのため、これらのバージョンを実装した経験のある人たちの助けを求めています。ありがとう!私のコードでプロトコルバージョンを実装する
0
A
答えて
1
あなたが直面している問題は、forward compatibilityを実装することで処理できます。残念ながら、あなたの議定書について何も知らなくても、私はあなたに実用的な助言を与えることはできません。しかし、あなたが従うことができるいくつかの一般的な手順があります:
- 実際に行う必要がある場合のみ、プロトコルを変更してください。
- 下位互換性を損なわないようにしてください。
- プロトコルの更新時にユーザーにアプリケーションの更新を強制します。これにより、一度に有効なバージョンが1つだけ存在することが保証されます。
- 複数のバージョンのプロトコルをサポートする必要がある場合は、何らかの種類のコンバータを実装することができます。しかし、これはすべての場合に機能しないかもしれません。
+0
ありがとうございます。ポイント: 1)はい、それは私がする必要がある場合のみ変更されます。 2)下位互換性は決して壊れません。 3)ユーザーに強制的にアプリケーションを更新させることは、残念ながら不可能です。 4)私はコンバータを調べます。 – nxn
0
私は、インタフェースと工場パターンでこの問題を扱います。例えば
:
- すべてのメソッドとのインタフェースを作成します。
- バージョンごとに異なる実装を作成します。
- 使っ工場[プロトコルバッファ]を使用しないのはなぜ適切な実装
関連する問題
- 1. 私のコードでre.search()を実装する方法は?
- 2. 私のコードでタッチコントロールを実装する方法は?
- 3. 私のコードにランダムな色のボタンを実装する
- 4. NSURLRequest httpプロトコルバージョン
- 5. JavaEEのSSL/TLSプロトコルバージョン
- 6. 私はこのCのコードを実装する場合は、このコード
- 7. ++コード(ベクトル実装)
- 8. Cコードの実装
- 9. 一部IBindableComponentインターフェイスの実装では、私は、次のコードにIBindableComponentを実装する必要が
- 10. SVGマーカーのレンダリングを実装するコード
- 11. 私のコードで印刷ダイアログを実装してください
- 12. デコレータを実装コードに変換する
- 13. openweathermap exaplmeコードを実装する
- 14. HMACの実装 - 擬似コード
- 15. コード署名のWindows実装
- 16. MATLABコードのCUDA実装
- 17. Android + Javaでのコードの実装
- 18. 私のサイトのアドレスバーを実装する
- 19. 私は、次のコードを実装しよう
- 20. PHPコード内でカウントダウンjsカウントダウンを実装
- 21. 私自身のDBGridを実装する
- 22. タイムアウトのあるコード競合の実装
- 23. 私の実装であるSHA-256
- 24. 次のコードでspannableを複数回実装する方法は?
- 25. このTensorflowマルチクラスSVMコードでクロスバリデーションを実装する方法
- 26. MVC Javaで自分のコードを実装する方法は?
- 27. バックグラウンドcのback4app.comでjavascriptコードを実装する方法
- 28. コインフリップで賭けゲームのJavaコードを実装する
- 29. スウィフト:私は、コードの下に実装したときにsizeForItemAtIndexPath
- 30. 私は、実装クラス
を取得する(https://developers.google.com/protocol-buffers/)?優れた下位互換性でプロトコルを拡張することができます。 – waltersu