在db write之前跨多个片段收集数据的最佳实践

时间:2016-06-28 04:53:40

标签: c# android .net xamarin xamarin.android

使用.net / Xamarin的Android应用程序。我在视图寻呼机中有几个片段。如果我要在寻呼机中的每个片段上收集一些数据,那么收集所有数据的最佳方法是什么,最后只写入数据库一次?我正在使用sqlite db。但是,举个例子说,寻呼机中有两个片段。第一个片段收集用户名,名字和姓氏。然后,下一个按钮将它们带到第二个片段以获取地址和电话号码。完成后,他们点击保存,然后我可以写入我收集了所有信息的数据库。

当然,我可以在每个片段后写入数据库,但这真的是最好的做法吗?我不认为我想将数据从片段传递到片段。这可能看起来像上面的例子,但我认为它不能很好地扩展,例如,如果我最后收集5个片段收集数据。

我一直在考虑单身人士课程。我已经读过他们应该不惜一切代价避免它们,但也许这是适合他们的应用程序?我可以使用我的所有属性创建一个单例,当我浏览片段和构建数据时,它们将保存在单例中。最后,我基本上将单例数据写入数据库并清除它,准备下次。我不认为我必须担心这个用例中的线程安全,或者至少,我可以写它,所以它不是问题。

这是要走的路吗?其他想法或想法?

谢谢!

迈克

1 个答案:

答案 0 :(得分:1)

当您需要管理资源(例如数据库连接)时,将使用单例。在这种情况下,我建议不要使用单例来存储数据。

你建议使用单例的方式与传递一个对象没什么不同,唯一的区别是对于单例,你可以请求你正在填充的对象。

你可以这样做,就是拥有一个代表每个片段的对象。这将允许您在给定的类中初始化并具有片段相关逻辑(例如验证)。

然后,您将拥有一个更通用的对象,该对象将保存最终将保存到数据库的所有片段中的信息。您可以将此对象从一个片段传递到下一个片段,每个片段都会填充它感兴趣的位。