現在、アプリがfirestoreから適切にロードされたデータを処理するためのデータ モデル クラスを設計しています。プロジェクトでRiverpodを使用しています。
簡単にするために、フルーツの例を取り上げます。
Fruit (基本クラス)には、次のデータ メンバーがあります。
origin
、isSweet
、color
、isWashed
、isUpForSale
「n」個の派生クラスがあり、n は次のようなさまざまな種類の果物を表す任意の数です。
Fruit を継承するMango (派生クラス)であり、次のデータ メンバーがあります。
prop_M1
、prop_M2
、prop_M3
、prop_M4
Banana (派生クラス)は Fruit を継承し、次のデータ メンバーを持ちます。
prop_B1
、prop_B2
、prop_B3
問題:
このデータはすべてfirestore streamからのものです。したがって、データベースに変更があるたびに、ウィジェット ツリーが再構築されます。そのため、別の方法でストリームをリッスンし、新しいデータに基づいて状態を変更することを計画しています。
ホーム画面では、色に基づいて果物をグループ化し、異なるタブに表示しています。
BaseClass と Derived Class の一部のプロパティは変更可能です。(例: 、
isWashed
、isUpForSale
、prop_M2
、)prop_B1
prop_B3
派生クラスはいくつでも存在できるため、 Base Class を削除することはできません。Json SerializationとFreezedパッケージの概念を認識しています。
最近、SOLID の設計原則について読み、すべてのデータ メンバーを最終的なものにしようとしています。
管理性を向上させるには
ChangeNotifier
、またはを使用する必要がありますか?StateNotifier
そのようなシナリオを処理するために従うべき正しいアプローチに関する例を誰か教えてください。
ありがとうございました