【问题标题】:Should the Model class be a Singleton when using multiple Controllers?使用多个控制器时,模型类应该是单例吗?
【发布时间】:2016-09-24 12:48:07
【问题描述】:

我正在设计一个 To Do List iOS 应用程序。我有多个表视图,它们都修改相同的列表数组。我应该为待办事项列表数组模型使用单例类,以便它始终是最新的,无论哪个表视图正在访问它?

最好有一个主控制器类(单例),它也包含模型数据,并有一些与数据交互的方法。那么是不是让其他控制器在主控制器上调用这些方法呢?

【问题讨论】:

    标签: ios


    【解决方案1】:

    是的,这就是 MVC 的理念。你有一个模型,它有多个视图,交互由多个视图控制器协调。

    您不必将模型设为单例,尽管这是 iOS 开发中非常常见的方法。

    【讨论】:

      【解决方案2】:

      当然,这肯定是一种方法。

      如果您后来决定要让您的应用基于文档,那么您可能需要返回并重构,因此在做出决定之前先考虑未来的使用。

      【讨论】:

        【解决方案3】:

        这样做完全可行,但是您失去了可能拥有多个模型对象的灵活性。我个人建议有一个单例“经理”,它从你的后端(或来自任何地方)获取模型,并持有对模型的引用。

        【讨论】:

          【解决方案4】:

          不,模型不应该是单例。单身人士被过度使用。您可能希望为用户提供创建多个待办事项列表的能力。例如,可能一个用于家庭,一个用于工作。每个列表都是待办事项列表数据模型的一个单独实例。

          使用单例会阻止您拥有多个活动的待办事项列表。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-06
            • 1970-01-01
            • 1970-01-01
            • 2013-12-26
            • 1970-01-01
            • 2018-07-29
            相关资源
            最近更新 更多