美文网首页
Android MVP模式

Android MVP模式

作者: 风卷残云啊 | 来源:发表于2022-07-18 18:52 被阅读0次

    文章分为以下三个部分

    一 .MVP 的概念
    二 .MVP 的优缺点
    三 .MVP 解决存在的问题

    一 MVP 的概念

    image.png

    MVP 简单介绍

    View层只负责视图的显示以及更新
    Model只负责数据的获取(如网络请求等)
    Presenter层则是负责View和Model通信的桥梁,接收model请求的结果后返回给View,或者接收View层的信息后到Model层进行请求,以及一些逻辑

    二 MVP优缺点

    MVP优点:

    模型与视图完全分离,我们可以修改视图而不影响模型;
    可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部;
    我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁;
    如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)。

    MVP缺点:

    视图和Presenter的交互会过于频繁,使得他们的联系过于紧密。也就是说,一旦视图变更了,presenter也要变更。

    三 MVP 解决存在的问题

    1.会造成接口类爆炸问题。使用MVP模式去构建项目,会造成类文件和接口文件的过多,进而增大包的体积
    解决 写一个Contract接口,然后把与MVP相关接口全部列入到里面去

    2.会造成内存泄漏的问题。当用户关闭了View层,但这时Model层如果仍然在进行耗时操作,因为Presenter层也持有View层的引用,所以造成垃圾回收器无法对View层进行回收,这样一来,就造成了内存泄漏。
    解决 可以重写onDestroy()方法,在View销毁时强制回收掉Presenter;或是采用弱引用的方式
    (引用进行引用之前,都需要判断引用不为空,以防止空指针异常。)

    相关文章

      网友评论

          本文标题:Android MVP模式

          本文链接:https://www.haomeiwen.com/subject/zktxurtx.html