在Flutter中,提供者应该 Package 数据模型,还是应该将模型的每个成员实现为变量?

b91juud3  于 2023-02-25  发布在  Flutter
关注(0)|答案(1)|浏览(110)

我去年写了一个应用程序,需要在多个屏幕上更新一个模型,所以我使用了provider和changeNotifier。

class SurveyProvider with ChangeNotifier, DiagnosticableTreeMixin{
  String name = "";
  String postCode= "";
  
  void addSurvey(Survey survey){
    this.name = survey.name;
    this.postCode = survey.postCode;
    notifyListeners();
}

这个提供程序是为下面的数据模型准备的,为了简单起见,我把它减少到只有两个变量。

class Survey{
  final String name;
  final String postCode;
}

我把模型的每个变量都实现为提供者内部的变量。我应该像这样在提供者内部实现整个模型吗?

class SurveyProvider with ChangeNotifier, DiagnosticableTreeMixin{
  Survey survey;
  
  void addSurvey(Survey survey){
    this.survey = survey;
    notifyListeners();
}

我不确定哪种方法是正确的,但我有一种感觉,我做这件事的方法是错误的。

jogvjijk

jogvjijk1#

没有一种普遍正确的国家管理方法,但我要说,你所做的并没有错。
当对象和提供程序之间有一对一的链接时,第一种方法更好。
但是,如果您需要为复杂和不同的实体提供一个提供程序,则第二个选项更为可靠,因为它允许您将对象逻辑与其提供程序逻辑分离。
最佳解决方案取决于项目的大小和复杂程度。

相关问题