为什么DAO必须是接口或抽象类?

时间:2018-08-26 19:09:10

标签: android sqlite dao android-room android-architecture-components

我想了解RoomDatabase幕后发生的事情,它要求DAO是接口或抽象类。 我已经搜索了很长时间,但是所有文章和文档仅说明了操作方法,而不是原因。

2 个答案:

答案 0 :(得分:0)

不仅仅是房间改造,其他库也使用此模式,它称为编程为接口。 您不仅可以指定具体的实现,还可以指定要执行的工作,它们为您提供了将按照您的要求运行的实现。

要进一步研究,您可以查看以下文章: https://tuhrig.de/programming-to-an-interface/

答案 1 :(得分:0)

数据访问对象(Dao)是一个带注释的类,您可以在其中指定SQL查询并将其与方法调用相关联。

DAO必须是接口或抽象类,因为我们要确保将在其内部创建的CRUD方法在类级别实现。实际上,这是拥有接口或抽象类的整个想法。