繁体   English   中英

跨 SwiftUI 应用程序共享数据:选择更好的模式? [关闭]

[英]Sharing data across SwiftUI app: better pattern to choose? [closed]

我正在开发交付应用程序,我应该可以访问应用程序中的商店(标题、电话)、身份验证(已登录、用户名、电子邮件)和购物车(添加/删除/清除)模块。

现在我正在与 EnvironmentObjects 共享所有数据,但会导致代码混乱,将这三个“服务”中的部分或全部注入每个视图(有很多工作表)。

单例可以解决问题,但 AFAIK singleton 是一种反模式,特别是如果我在应用程序中甚至有三个单例。 有没有更有效的方法来做这些事情? 我在应用程序中使用 MVVM。

提前致谢!

PS任何关于该主题(设计模式)的好资源也非常受欢迎

商店和身份验证信息可以存储在UserDefaults中(不要在其中放置任何敏感信息,如密码),并且可以在视图中轻松访问。 而且我会将购物车控制器/服务保留为EnvironmentObject (如果实施正确,甚至可能是Singleton )。 通过这种方式,您可以将 3 个依赖项减少到一个,这应该更容易处理/管理。

如果您熟悉诸如Composition Root之类的模式/想法,那么您甚至可以手动将购物车 object 注入到需要它的每个视图中(比EnvironmentObject麻烦得多)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM