現在、アプリが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_B1prop_B3派生クラスはいくつでも存在できるため、 Base Class を削除することはできません。Json SerializationとFreezedパッケージの概念を認識しています。
最近、SOLID の設計原則について読み、すべてのデータ メンバーを最終的なものにしようとしています。
管理性を向上させるには
ChangeNotifier、またはを使用する必要がありますか?StateNotifier
そのようなシナリオを処理するために従うべき正しいアプローチに関する例を誰か教えてください。
ありがとうございました