Java 设计-从何处打开、插入和关闭数据库?
我需要一些设计建议 以下是我的用户故事: 作为一名用户,我希望将我的工作时间保存到DB中,以便以后进行查看。我希望它是简单的,从主屏幕点击一个按钮 我在我的应用程序中处理这个问题的方式是,从我的主应用程序片段中,当用户单击按钮时,它将调用一个工厂类,该工厂类将为这种类型的工作实例化正确的类(让我们调用-class“X”),并将其返回到主片段进行交互 在类“X”构造函数中,我建立并打开DB连接,在其中一个类方法中,我将新数据插入DB 我的问题是——这是一个好的设计吗?我会有内存泄漏吗?有什么我需要考虑的吗? 我附加了一个类似UML的类流以获得帮助:Java 设计-从何处打开、插入和关闭数据库?,java,android,design-patterns,Java,Android,Design Patterns,我需要一些设计建议 以下是我的用户故事: 作为一名用户,我希望将我的工作时间保存到DB中,以便以后进行查看。我希望它是简单的,从主屏幕点击一个按钮 我在我的应用程序中处理这个问题的方式是,从我的主应用程序片段中,当用户单击按钮时,它将调用一个工厂类,该工厂类将为这种类型的工作实例化正确的类(让我们调用-class“X”),并将其返回到主片段进行交互 在类“X”构造函数中,我建立并打开DB连接,在其中一个类方法中,我将新数据插入DB 我的问题是——这是一个好的设计吗?我会有内存泄漏吗?有什么我需要
+-----------------+ +----------------------+
|MainFragment | | Factory |
|-----------------| |----------------------|
| | | ChooseShiftObject |
| |+---------+----+ | |
| CheckIn() | | |
+-----------------+ | |
+----------------------+
+
|
|
+
|
+ +
+-----------------------+
| Shift |
|-----------------------|
| DB.Open() |
| DB.Insert(bla, bla. bla)
| DB.Close() |
| |
| |
| |
+-----------------------+
关于android中的数据库,有一件事你应该知道。您必须将
SQLiteOpenHelper
对象创建为单实例,否则您将在多线程环境中遇到问题。你可以找到一个解释,以及为什么要这么做。关于android中的数据库,有一件事你应该知道。您必须将SQLiteOpenHelper
对象创建为单实例,否则您将在多线程环境中遇到问题。您可以找到一个解释以及为什么要这样做。谢谢,我的SQLiteOpenHelper类与Reto Meir在他的书中描述的一样,我知道它是缓存的。谢谢,我的SQLiteOpenHelper类与Reto Meir在他的书中描述的一样,我知道它是缓存的。