iOS-MVVM

808 阅读2分钟

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

通过问题看本质!!!

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

MVVM

通过实现双向绑定,业务逻辑和视图分离。

Model:负责数据的存储。

View:负责管理视图。

ViewModel:负责业务逻辑处理,帮控制器瘦身。

更加细粒度拆分业务逻辑,通过组合的方式建立多个ViewModel。

控制器和View 持有ViewModel,ViewModel持有Model,它们都是单向持有的。

ViewModel可以主动修改Model,也能在Model更新时对自身调整,然后通过View和ViewModel的绑定,对View也能做对应的更新。

缺点

1、定位问题麻烦、不知道是View有问题还是Model有问题。

1、兼容MVC架构、增加可测试性、实现了View和Model解耦。

2、View负责的事情多了一些,因为它是通过ViewModel的数据绑定来更新自身状态。

优点

MVVM+RAC 双向绑定,数据更新后,自动触发UI的刷新。

MVVM通过ViewModel的绑定数据来更新自身的状态的,MVP是把所有的事情交给p层,自己本身不负责更新。

VIPER

VIPER彻底将VC变成了真正意义上的View。把VC的职责进行了彻底的拆分,分散到各个子层里面了。

  • 简化复杂项目。由于模块独立,VIPER对于大型团队来说真的适合。
  • 可扩展高。使开发人员尽可能无缝地同时处理它。
  • 代码达到了可重用性和可测试性。
  • 根据应用程序的作用划分应用程序组件,设定明确的责任。