2016-11-25 5 views
0

私はFirebaseを使ってチャットアプリを開発しています。異なるメッセージタイプ(すなわち、テキストメッセージ、画像メッセージ、音声メッセージ)を扱う場合、継承は良い選択である。私はBaseMessageClassと他のサブクラスをベースクラスから継承しています。この問題は、Firebaseにアップロードして戻したいときに発生します。Android:FirebaseとJavaの多態性?

すべての値を同じノードに置くと、正しいスナップショットをdatasnapshotに指定する方法を教えてください。

答えて

0

はい、そうするには、オブジェクトのファミリを別の方法で処理する必要があります。 「ビジター」のパターンを参照してください:https://sourcemaking.com/design_patterns/visitor/java/1 https://en.wikipedia.org/wiki/Visitor_pattern

+0

しかし、Firebaseから取得する際に、オブジェクトがどのタイプに属しているかをどのように知るのでしょうか? – Aung

+0

通常、マーカープロパティを使用します。それぞれの特定のサブクラスに固有のプロパティがあり、その存在を検出するか、そのタイプを示す単一の最上位プロパティがあります。 –