如何在活动和片段之间共享TouchDB的实例?

时间:2013-04-20 12:25:57

标签: java android touchdb

目前我的主要活动中嵌入了一个TouchDB实例,现在已经达到了一个单独的片段需要访问它并且将主要活动中的数据传递给其他活动是不够的。是否有建议的方法在活动/片段之间共享相同的数据库实例?例如,在下面的图像与我的应用程序类似,片段b需要访问数据库,但在移动设备上,它将附加到活动B和平板电脑活动A(在我的情况下是主要活动)。

enter image description here

从我的主要活动中提取db实现并将其放入单例类是推荐的方法吗?或者实例化并销毁每个活动/片段中的数据库?如果后者是首选方法,那么我的理解是正确的,除了主要活动之外,最好将db实现放在片段而不是相关活动中?

1 个答案:

答案 0 :(得分:0)

您应该肯定从您的视图代码中提取您的数据库代码。之后,根据应用程序的需要,您有很多选择。

根据您的需要可能有用的模式:

  • 控制反转(IoC)
  • 依赖注入
  • 的Singleton

关于单身人士的附注,你提到这是一个可能的解决方案。 Singleton和全局静态对象之间的差别很小。它们具有相似的弱点 - 它们引入了代码依赖性,使用它们的代码编写自动化测试非常困难。主要区别在于Singletons可以控制何时首次创建底层对象 - 这可能对您的应用程序影响最小。 (如果您的db代码需要10秒钟加载,并且您希望在加载期间显示启动画面,那么Singleton可能会有所帮助。)