MVP

2019-04-30  本文已影响0人  我在等你回复可你没回

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来实现。

上一篇下一篇

猜你喜欢

热点阅读