我想使用Clean Architecture构建一个应用程序,我想在演示者中存储图像的可绘制ID:
var heart = R.drawable.heart_red
我现在的问题是我可以在演示者中使用R还是算作Android依赖?
答案 0 :(得分:2)
在演示者中使用R是安全的。
R包含许多整数,它没有对上下文的任何引用,因此将它存储在演示者中是安全的。
但是像imgeView.setDrawable(heart)
这样的操作应该在activity或fragment中执行,因为imageView和任何其他视图都有对上下文的引用。
答案 1 :(得分:1)
我不是Android专家,但据我所知,google R是一个由android定义的类,对吗?
In" Clean Architecture" Bob叔叔写道,依赖规则是关于代码依赖性的。所以当你在你的演示者中使用类R时,你基本上会创建一个从演示者到R的依赖,它存在于框架层中。
据我所知,这违反了依赖规则。
(但我不是百分百肯定 - 我在这里有类似的问题:Dependency from Gateway to Framework in Clean Architecture)