google官方例子
https://github.com/googlesamples/android-architecture
mvp的简单例子
https://blog.csdn.net/singwhatiwanna/article/details/80841705
个人理解
model:主要是提供数据,可以是回调等方式反馈给presenter。
presenter:持有model的引用,发起获取数据的动作。
MVVM的架构图
image.png与MVP的区别,ViewModel相当于mvp架构中的presenter,只不过不持有view的引用,而是通过databinding的方式更新ui。
MVP架构中的base是做什么用的?
用来做一些基础的操作。
例如BaseMVPActivity就是用来创建presenter,为了可扩展,使用了泛型,谁继承了他,生成的present就是什么类,可以可以,很牛
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutID());
mPresenter = createPresenter();
if (mPresenter instanceof BasePresenter) {
delegate = new WeakReference<BasePresenter>((BasePresenter) mPresenter);
} else {
throw new IllegalArgumentException("Presenter must extends BasePresenter");
}
bindViews();
preCreate(savedInstanceState);
delegate.get().onCreate(savedInstanceState);
postCreate(savedInstanceState);
}
还有一些present和view共同的操作就用implentment来实现。
网友评论