如何解决Android listView 适配器是否应该有 api 调用
您好,我有一个适配器,可以显示项目列表以及与 setItems
、getCount
、notifyDataSetChanged
相关的所有功能。
适配器还可以通过用例调用 api。
结构是
Adapter -> UseCase -> Repository -> apiLayer
我知道片段和活动不应该包含对 api 的调用(在我的实例中是用例)。
适配器是否应该有 api 调用(在我的实例中是用例)
谢谢 R
解决方法
这是可能的,但从软件设计的角度来看,我不推荐它。
Adapter
的职责是将您的 Data
与 View
连接起来,并使其可用于 ListView
/RecyclerView
。适配器不应该有任何其他依赖(知识)。这也将使其对变化更加稳健。
因此您应该考虑只有 Activity/Fragment 与您的 Presenter 对话并将结果从 Presenter 委托给适配器。 这也将使(Presenter 的)(单元)测试更容易。
class YourActivity: Activity() {
private val presenter: YourPresenter = // ...
override fun onCreate() {
val adapter: YourAdapter = YourAdapter()
recyclerView.setAdapter(adapter)
val data = presenter.getData()
adapter.submit(data)
}
}
class YourPresenter(private val useCase: UseCase : Presenter() {
fun getData(): List<Data> {
return useCase.fetchData()
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。