在将数据从一个类传递到另一个类时,应该传递整个模型,还是单独传递参数



我有一个模型,里面有很多参数:

UserDataModel({
this.id,
this.name,
this.email,
this.phone,
this.photo,
this.firstName,
this.lastName,
this.birthday,
this.sex,
this.land,
this.bio,
this.interests,
this.facebook,
this.instagram,
this.telegram,
this.register,
this.login,
this.timezone,
this.banned,
this.bannedDate,
this.locked,
this.lockedDate,
this.postsNum,
this.likesNum,
this.commentsNum,
this.views,
this.notifications,
this.push,
this.position,
this.rating,
this.rewards,
this.verified,
this.notify,
this.the2Fa,
this.params,
});

我使用流将此模型传递给一个小部件,该小部件只需要rating.level(rating参数的子模型(和photo.small(另一个子模型,但用于photo参数(。

例如,我想知道将整个模型传递给一个只需要2个参数的小部件是否会导致使用更多的内存。无论哪种方式都没什么大不了的,留下一些小的优化会有点令人沮丧。

感谢您的帮助。我想这个问题可以应用于任何语言,但由于我使用的是flutter,我将用它来标记它。

只传递您需要的东西更干净。如果rating.level是一个对象,在Flutter小部件中,将其添加为需求

Widget rating({required Level level})

在中,当您调用此评级小部件时,仅通过级别:

return rating(level: myUserModel.rating.level)

例如,如果此级别是intString,也可以执行相同的操作。我不确定这会对性能产生多大影响,但主要原因是这可以实现更好的小部件可重用性和回收利用。当你创建了一个很酷的评级小部件,但你有针对用户的评级,例如产品时,将其应用于你的其他项目。您的rating模型是相同的,但产品和用户数据模型不同。您可以使用相同的rating小部件,而不必为ProductRating和UserRating创建模型,并且该小部件只需要评级对象或级别对象。

最新更新