MVP介绍

作者: 你weixiao的时候很美 | 来源:发表于2018-04-24 15:36 被阅读27次

    这里介绍MVP架构,我看了几篇文章,MVP解释的不清晰,上一篇中大佬的文章解析的比较可信

    浅谈 MVC、MVP 和 MVVM 架构模式 这篇大佬的文章

    1.MVP和MVC的比较

    MVP 架构模式是 MVC 的一个变种,MVC 与 MVP 之间的区别其实并不明显。

    两者之间最大的区别就是 MVP 中使用 Presenter 对视图和模型进行了解耦,它们彼此都对对方一无所知,沟通都通过 Presenter 进行。

    MVP 中的视图必须要将对应的事件代理给 Presenter 执行,MVC中一般都是Controller。

    2. 被动视图

    MVP有两种常见的模式:Passive View 和 Supervsing Controller。

    被动视图(Passive View):顾名思义,在该变种的架构模式中,视图层是被动的,它本身不会改变自己的任何的状态,所有的状态都是通过 Presenter 来间接改变的

    • 当视图接收到来自用户的事件时,会将事件转交给 Presenter 进行处理;
    • 被动的视图向外界暴露接口,当需要更新视图时 Presenter 通过视图暴露的接口更新视图的内容;
    • Presenter 负责对模型进行操作和更新,在需要时取出其中存储的信息;
    • 当模型层改变时,可以将改变的信息发送给观察者 Presenter;

    在 MVP 的变种被动视图中,模型的操作以及视图的更新都仅通过 Presenter 作为中间人进行。

    2. 监督控制器

    与被动视图中状态同步都需要显式的操作不同,监督控制器(Supervising Controller)就将部分需要显式同步的操作变成了隐式的:
    监督控制器中,视图层接管了一部分视图逻辑,主要内容就是同步简单的视图和模型的状态。

    相关文章

      网友评论

          本文标题:MVP介绍

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