设计 - 从哪里打开,插入和关闭数据库?

时间:2013-01-08 09:51:27

标签: java android design-patterns

我需要一些设计建议。

这是我的用户故事:

作为用户,我希望将我的工作时间保存到数据库中以供日后查看。我希望它很简单,只需点击一下按钮就可以从主屏幕上看。

我在我的应用程序中处理这个的方式是,从我的主应用程序片段,当用户点击一个按钮时,它将调用一个工厂类,它将实例化正确的类(让我们调用类“X”)工作类型,并将其返回到主片段进行交互。

在类“X”构造函数中,我建立并打开数据库连接,在其中一个类方法中,我将新数据插入到数据库中。

我的问题是 - 这是一个好设计吗?我会有内存泄漏吗?有什么我需要考虑的吗?

我已经附加了一个UML,比如类的流程来寻求帮助:

 +-----------------+                 +----------------------+
 |MainFragment     |                 |      Factory         |
 |-----------------|                 |----------------------|
 |                 |                 | ChooseShiftObject    |
 |                 |+---------+----+ |                      |
 | CheckIn()       |                 |                      |
 +-----------------+                 |                      |
                                     +----------------------+
                                              +
                                              |
                                              |
                                              +
                                              |
                                         +    +
                                    +-----------------------+
                                    |       Shift           |
                                    |-----------------------|
                                    |   DB.Open()           |
                                    |   DB.Insert(bla, bla. bla)
                                    |   DB.Close()          |
                                    |                       |
                                    |                       |
                                    |                       |
                                    +-----------------------+

1 个答案:

答案 0 :(得分:1)

你应该知道有关android中数据库的一件事。您必须将SQLiteOpenHelper对象创建为单例,否则您将在多线程环境中遇到问题。您可以找到解释herehere的原因。