Sia*_*oli 6 java mvp android code-cleanup android-adapter
我试图重构我的一个活动类来实现mvp(使用mvp mosby库).我有一个RecyclerView,在这个视图中有一些项目在运行时会对它们进行一些更改.例如,我做了一些I/O操作并改变了一行.
我认为将我的项目保留在演示者课程中会更好; 这是什么最好的做法?将此保留在1)演示者或2)活动中或3)仅保留适配器中的视图相关项和演示者中的所有其他项.
活动现在直接保留项目并更改活动中的项目行,然后通知适配器.是不是更好地在适配器中移动所有这一行并通知适配器类中的适配器?例如,我想要一些row.where的更改图标,哪个类负责?适配器?活动?现在我想在适配器中实现它:
changeItemIcon(int position, int iconRes){
mImages.get(position).setICon(iconRes);
notifyItemChanged(position);
}
Run Code Online (Sandbox Code Playgroud)
我在活动上调用此方法并从演示者调用活动方法.
好吗?这样做的最佳做法是什么?
UPDATE
我也发现这个问题(使用RecyclerView适配器更新数据的最佳方法),使用适配器方法更改项目.但修改呢?我需要继续参考我活动中的项目吗?
例如,我想要一些row.where的更改图标,哪个类负责?适配器?活动?
我知道这听起来有点奇怪,但更改元素始终是"业务逻辑"的责任,即使只是"图标".
工作流程应如下(单向数据流):
到目前为止,你已经实现了我想,现在它到了你想要改变一个项目的地步.
presenter.changeItem()您是否看到了单向数据流?这非常重要.不变性FTW.