我想使用 Clean Architecture 构建一个应用程序,并且我想将图像的可绘制 id 存储在演示器中:
var heart = R.drawable.heart_red
我现在的问题是我可以在演示者中使用 R 还是算作一个 android 依赖项?
我想使用 Clean Architecture 构建一个应用程序,并且我想将图像的可绘制 id 存储在演示器中:
var heart = R.drawable.heart_red
我现在的问题是我可以在演示者中使用 R 还是算作一个 android 依赖项?
在演示者中使用 R 是安全的。
R 包含许多整数,它没有对上下文的任何引用,因此将其存储在演示者中是安全的。
但是操作imgeView.setDrawable(heart)
应该在活动或片段中执行,因为 imageView 和任何其他视图都引用了上下文。
我不是安卓专家,但据我所知,谷歌 R 是一个由安卓定义的类,对吗?
在“清洁架构”中,鲍勃叔叔写道,依赖规则是关于代码依赖的。所以当你在你的presenter中使用类R时,你基本上会创建一个从presenter到R的依赖关系,它存在于框架层中。
据我了解,这违反了依赖规则。
(但我不是 100% 确定 - 我在这里有一个类似的问题:Dependency from Gateway to Framework in Clean Architecture)