我正试图弄清楚如何使用MVVM设计模式和SwiftUI实现以下内容。
我想要只有一个网络操作队列的实例(使用OperationQueue
),任何需要发送网络请求的视图模型都可以使用该队列。但我听说创建单例不是首选,而应该将网络队列对象传递到需要它的地方。
因此,如果我在Scene Delegate中创建网络操作队列的实例,并将其传递到ContentView的初始化程序中并将其存储在一个对象中以传递到所创建的视图中。
从我理解的角度来看,这似乎不是很好的MVVM设计实践,因为视图应仅拥有ViewModel?
那么最好的实现方式是什么呢?
编辑:我再考虑一下这个问题,我可以通过构造函数将它传递到视图中,然后在构造函数中创建视图模型并直接传递它,这样视图就不拥有任何东西。
但我仍然需要一个单例,那么我如何将单例作为依赖项注入而不是全局使用它呢?