【发布时间】:2018-12-23 19:59:35
【问题描述】:
我学习 Android MVP 已经有一段时间了,在我的大部分应用程序中,我发现在 MVP 层之间传递 上下文数据 用于可测试性目的并不实用。
但是,在某些情况下,需要这样做,例如,为了访问 Realm 数据库,我需要 上下文数据 来执行此实现:
领域实现
Realm.init(mainContext)
val config = RealmConfiguration.Builder()
.name(mainContext.getString(R.string.accountRealm))
.build()
realm = Realm.getInstance(config)
只有我可以执行 Realm 的 CRUD 功能。
因此,我必须始终将 上下文数据 从视图层传递到模型层,我认为这不太实用。
我的问题:
我有没有其他方法可以实现 Realm 功能而无需使用 上下文数据?我应该如何以正确的方式做到这一点?
在 MVP 层中继续传递 上下文数据 或其他类似的 android 特定代码是否可以/可以接受?就像这个 Realm 案例一样,它是否被视为“可接受的权衡”?
【问题讨论】:
-
Realm 文件名是
String resource而不仅仅是"wallet.realm"有什么原因吗? -
@epicpandaforce 我把它作为字符串资源,所以当需要更改名称时,我只需要编辑 String.xml 文件,而不是手动更改所有具有相同实现的函数。
-
您可能应该在代码中为此创建一个 Public static final 常量,而您突然删除了对 Context 的依赖。
-
@epicpandaforce 很抱歉,您所说的“删除了对 Context 的依赖”是什么意思?
标签: android realm android-context realm-mobile-platform android-mvp