Android 我在安卓系统中的模型需要是一个单体模型吗?
在我看来,如果你在android中有一些状态或数据,你想从不同的活动中访问(但不想持久),你需要一个单例。这是正确的还是有其他方法来设计应用程序Android 我在安卓系统中的模型需要是一个单体模型吗?,android,model,Android,Model,在我看来,如果你在android中有一些状态或数据,你想从不同的活动中访问(但不想持久),你需要一个单例。这是正确的还是有其他方法来设计应用程序 这并不是说我有单身问题。我只是想知道,这与普通的桌面应用程序开发有很大的不同。你所说的绝对不正确,还有其他方法可以设计Android应用程序 实际上,对于Android开发,应该避免使用单例,或者节约使用单例,而不是将单例作为第一个或唯一的解决方案。尤其不应使用它在活动之间随意共享数据或状态 如果你发现你的应用程序在所有方面都需要使用单例,那么很可能。
这并不是说我有单身问题。我只是想知道,这与普通的桌面应用程序开发有很大的不同。你所说的绝对不正确,还有其他方法可以设计Android应用程序 实际上,对于Android开发,应该避免使用单例,或者节约使用单例,而不是将单例作为第一个或唯一的解决方案。尤其不应使用它在活动之间随意共享数据或状态 如果你发现你的应用程序在所有方面都需要使用单例,那么很可能。。。你需要重新设计你的应用程序 在使用单例时,实际上有几件事需要记住:
- 它们通常存在于应用程序的整个生命周期中,直到被关闭应用程序的系统关闭
- 创建不正确的单例很容易泄漏内存
- 设计不当的单例和过度使用单例会占用大量不必要的内存
- 它们很难用于测试
- 存在单个实例的真正需要
- Singleton经常被使用,不断地创建它是很昂贵的,但是将它保存在内存中不会有任何重大的副作用李>
- 数据库
- SharedReferences(应用程序需要以比正常更频繁的方式访问首选项)
- 测井系统
- 我看到一个开发人员在启动他的应用程序时加载了大量的Drawable,并将其存储在一个单例中。。。只是为了让他能在任何地方都能很快地使用这些拖带李>
- 我看到一些开发人员使用单例来保存已创建活动的列表,这样他们就可以访问那些活动方法和视图。。。(死了)
如果你很好地考虑了你的应用程序,并且真的认为单身会让你的应用程序受益匪浅,那么就使用它吧。不要忘记使用应用程序上下文而不是活动的上下文,因为单例肯定会比您的活动寿命长,并且您不希望出现内存泄漏问题 我的状态/数据类似于:我从其他用户处收到的更新列表。看看你的建议,你会说共享引用、数据库,但你也会说这些都是有效的单例用例。这些东西来自后台运行的服务。该服务本身基本上也是一个单例服务,因为bindService是一个异步版本的getInstance。。。我理解你对单身的厌恶,这就是我问这个问题的原因。这里有三件事需要解决。首先,是您的用例。如果你的更新列表(来自其他用户的数据)在你的应用程序中经常使用,并且不断地创建和关闭该连接是没有意义的,那么考虑一个单体是有意义的。从某种意义上说,这就是为什么那些使用从本地数据库、远程数据库等获取数据的存储库模式的人通常会将存储库变成一个单实例