iOS-MVC、MVVM架构

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

通过问题看本质!!!

软件通过架构,可以管理复杂的应用程序。我们使用架构的目的很明显,就是把复杂的事情简单化。使得软件的可测性高、易用性高。

MVC架构

控制器持有View,View改变时,通知vc去做一些事情,处理逻辑。

数据的加载也是在控制器中完成的,数据改变时,将最新的数据展示到界面上。

控制器是View和Model的桥梁,他们之间互相不知道对方的存在。

苹果的TableView就是典型性的MVC架构,TableView不关心数据是怎么获取的,View是不知道Model的存在, 它把UI控件暴露出来,提供给外界使用。

控制器负责帮View和Model建立连接,负责处理各种事情。

优点:所以View和Model的可复用度高,耦合性低。

缺点:控制器会变得臃肿,

MVC的变种

View持有Model,使得View更具有封装性,只需要初始化和设置Model即可。

但是这样View和Model绑定在一起了,无法单独使用,View依赖Model。

MVP

和MVC很像,但是MVC中,Controller和View是耦合紧密在一起的

P层不关心Controller的生命周期,也没有UI的布局代码。它只是负责更新数据和视图的状态。需要手动绑定事件和数据。

控制器将View和自身传递给了P层,相当于把控制器的职责转交到了p层;

P层持有Controller和View,只需要调用View层提供一组更新的协议方法,就能完成业务处理和UI展示。

主要的职责在p层(数据调配、事件处理)和Model层(网络请求)

优点:

实现了控制器、View、Model的解耦。便于测试

缺点:

视图和Persenter的交互会过于频繁,但是P层和View层绑定在一起了,很难复用

需要手动绑定数据和事件,代码量会增多

猜你喜欢

转载自juejin.im/post/7021148028031467527