简述MVC以及MVC的三种变体

一、MVC

  MVC由Mode、View、Controller三者组成,Mode负责逻辑数据处理,View负责视图的交互,Controller控制器负责View与Mode交互。

  职能划分:

    Mode:大量逻辑的处理,不负责View的逻辑处理,只为View / Controller 提供处理完(加工后)的数据支持。

    View:展示视图,接收交互事件后转Controller进行逻辑处理,也可以对Mode数据进行请求。

    Controller:处理View提交而来的时间处理,处理完成后决定是否向mode发送请求。

  交互方式:

             

  优劣:

    优:在1979年提出,当时很先进。

    劣:View与Mode直接交互,模块不可以其他项目中复用。

 

二、MVP

  MVP与MVC类似,由Mode、View、Presenter三者组成,Mode负责逻辑数据处理,View负责视图的交互,Presenter代理负责View与Mode交互。

  职能划分:

    Mode:只为Controller 提供未处理的(原始)数据支持,并不进行自身数据处理。

    View:只展示视图,接收交互事件后转Controller进行逻辑处理。

    Presenter:以接口的方式进行交互处理。View逻辑交互,处理获取Mode原始数据后进行逻辑处理。处理完成后并对View和Mode进行相应操作。

  交互方式:

    

  优劣:

    优:View模块组件性提高,可以在其他项目中复用。

    劣:Presenter模块重而杂乱,可以根据View和Mode划分为多个子模块,这样单个文件不会过于臃肿。

三、MVVM

  MVVM与MVC类似,由Mode、View、ViewMode三者组成,Mode负责逻辑数据处理,View负责视图的交互,ViewMode代理负责View与Mode交互。

  职能划分:

    Mode:只为Controller 提供未处理的(原始)数据支持,并不进行自身数据处理。

    View:只展示视图,接收交互事件后转Controller进行逻辑处理。

    ViewMode:以接口的基础上还有双向绑定,绑定View和Mode,在双方中的一方变化时无需额外逻辑操作即可实现View与Mode的同步数据。。

  交互方式:

     

  优劣:

    优:View模块组件性提高,可以在其他项目中复用。

    劣:ViewMode模块相比MVP中的Presenter较轻,但仍然重。

 

posted @ 2023-11-18 15:22  Labant  阅读(62)  评论(0)    收藏  举报