0

現在、アプリがfirestoreから適切にロードされたデータを処理するためのデータ モデル クラスを設計しています。プロジェクトでRiverpodを使用しています。

簡単にするために、フルーツの例を取り上げます。


Fruit (基本クラス)には、次のデータ メンバーがあります。

originisSweetcolorisWashedisUpForSale

「n」個の派生クラスがあり、n は次のようなさまざまな種類の果物を表す任意の数です。

Fruit を継承するMango (派生クラス)であり、次のデータ メンバーがあります。

prop_M1prop_M2prop_M3prop_M4

Banana (派生クラス)は Fruit を継承し、次のデータ メンバーを持ちます。

prop_B1prop_B2prop_B3


問題:

  1. このデータはすべてfirestore streamからのものです。したがって、データベースに変更があるたびに、ウィジェット ツリーが再構築されます。そのため、別の方法でストリームをリッスンし、新しいデータに基づいて状態を変更することを計画しています。

  2. ホーム画面では、色に基づいて果物をグループ化し、異なるタブに表示しています。

  3. BaseClass と Derived Class の一部のプロパティは変更可能です。(例: 、isWashedisUpForSaleprop_M2)prop_B1prop_B3

  4. 派生クラスはいくつでも存在できるため、 Base Class を削除することはできませんJson SerializationFreezedパッケージの概念を認識しています。

  5. 最近、SOLID の設計原則について読み、すべてのデータ メンバーを最終的なものにしようとしています。

  6. 管理性を向上させるにはChangeNotifier、またはを使用する必要がありますか?StateNotifier

そのようなシナリオを処理するために従うべき正しいアプローチに関する例を誰か教えてください。

ありがとうございました

4

0 に答える 0