我目前正在为我的应用程序设计数据模型类,以处理从firestore正确加载的数据。我在我的项目中使用riverpod。
为简单起见,我以水果为例。
Fruit(基类)具有以下数据成员:
origin
, isSweet
, color
, isWashed
,isUpForSale
有'n' 个派生类,其中 n 可以是代表不同类型水果的任意数字,例如:
Mango (Derived Class)继承 Fruit 并具有以下数据成员:
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 序列化和Freezed包的概念。
最近阅读了有关SOLID 设计原则并试图使我所有的数据成员保持最终状态。
我应该使用
ChangeNotifier
还是StateNotifier
为了更好的可管理性?
任何人都可以给我一个关于我应该遵循的正确方法来处理这种情况的例子吗?
谢谢你