2

我想使用 Clean Architecture 构建一个应用程序,并且我想将图像的可绘制 id 存储在演示器中:

var heart = R.drawable.heart_red

我现在的问题是我可以在演示者中使用 R 还是算作一个 android 依赖项?

4

2 回答 2

2

在演示者中使用 R 是安全的。

R 包含许多整数,它没有对上下文的任何引用,因此将其存储在演示者中是安全的。

但是操作imgeView.setDrawable(heart)应该在活动或片段中执行,因为 imageView 和任何其他视图都引用了上下文。

于 2018-03-04T08:35:34.137 回答
1

我不是安卓专家,但据我所知,谷歌 R 是一个由安卓定义的类,对吗?

在“清洁架构”中,鲍勃叔叔写道,依赖规则是关于代码依赖的。所以当你在你的presenter中使用类R时,你基本上会创建一个从presenter到R的依赖关系,它存在于框架层中。

据我了解,这违反了依赖规则。

(但我不是 100% 确定 - 我在这里有一个类似的问题:Dependency from Gateway to Framework in Clean Architecture

于 2018-03-04T19:28:10.420 回答