Sre*_*ree 5 mvp android presenter android-adapter
目前我有它,以便适配器可以引用其中的所有模型.但让演示者只持有模型并且适配器可以简单地引用它们是否更好?
例如:
public class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private Presenter presenter;
public Adapter(Presenter presenter){
this. presenter = presenter;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
Model m = presenter.getModels().get(position);
// bind model to view holder
}
@Override
public int getItemCount() {
return presenter.getModels().size();
}
}
Run Code Online (Sandbox Code Playgroud)
这样,当Presenter获取更多模型时,它只是getAdapter().notfiyDataSetChanged();在获取后调用.
你可以用任何一种方式.有些人会说将适配器视为视图的一部分并使其尽可能愚蠢,但如果你做得对,让适配器保存数据绝对有好处.
例如,我使用带有泛型的抽象基础适配器,该适配器包含一个数据对象列表以驱动recyclerview.它为列表提供了所有标准的CRUD操作(添加,更新,删除,移动等).这些方法还处理通知适配器的更改,因此我的客户端代码不必担心它.它只是将一个对象交给适配器或告诉它删除/更改一个,然后适配器处理其余的.
这里的一大好处是CRUD操作的重复样板代码量的大幅减少以及与recyclerviews交互的各个角色的数据集更改通知.如果你有一两个以上的回收视图,那么节省的费用会比盲目地遵守口头禅更快.