【发布时间】:2018-09-14 21:07:08
【问题描述】:
我有一个名为Measurement 的类,它基本上只是一个带有一些成员的普通旧Java 对象,它实现了Parcelable 接口以便于序列化。
我想将来自 Measurement 对象的数据存储在 SQLite 数据库中。我需要一种简单的方法来传递带有附加数据库 ID 的数据。我的第一个解决方案是简单地将public long id 成员添加到Measurement 类。这当然行得通,但感觉就像它与数据库耦合,这实际上没有意义 - Measurement 可以在没有数据库的情况下存在,并且用于根本没有数据库概念的各种地方.
所以,我的下一个想法是创建某种MeasurementDbEntry,它将扩展Measurement 并添加public long id。然后,这将在与包含数据库 ID 相关的地方使用。这是一个好的设计,还是如果MeasurementDbEntry 没有扩展Measurement 而是有一个Measurement 成员和一个id 成员会更好?
另外,在问题标题中我提到了Data Access Object (DAO),但我不确定我在这里谈论的是否真的是一个 DAO,因为它并没有真正访问数据库本身(我是使用SQLiteOpenHelper 的子类来做到这一点)?它只是Measurement 的更特定于数据库的表示。它会被视为 DAO(我应该将我的班级命名为 MeasurementDAO)吗?
【问题讨论】:
标签: java android database architecture dao