【问题标题】:How to avoid the global state in Swift如何避免 Swift 中的全局状态
【发布时间】:2015-04-10 21:02:03
【问题描述】:

我一直在阅读有关避免可变状态以及单例模式如何不利于拥有全局状态的文章。

我看到关于依赖注入http://www.objc.io/issue-13/singletons.html 的答案很少,但我找不到如何解决这个基本方法:

如何维护app周围的用户数据?解决方法是将用户信息从一个视图(webservice请求的地方)通过视图通过参数传递到七个推送视图(再次需要哪里)?

有更好的方法吗?还是有时需要单例模式?

【问题讨论】:

    标签: ios singleton global-state


    【解决方案1】:

    我使用单例来表示我在 Swift 中的 Engine 类。它在启动时初始化一次,并包含存储在结构中的静态类变量。对我来说很好。

    class Engine{
    
    struct properties{
    
    static var resourceManager:ResourceManager!;
    ...
    }
    
    init(){
    properties.resourceManager = ResourceManager();
    }
    

    然后我可以在另一个类中调用

    Engine.properties.resourceManager

    【讨论】:

    • 与传统单例相比有什么优势?
    猜你喜欢
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 2016-01-23
    • 1970-01-01
    • 2013-06-05
    • 2021-12-28
    • 2010-12-22
    相关资源
    最近更新 更多