小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
通过问题看本质!!!
软件通过架构,可以管理复杂的应用程序。我们使用架构的目的很明显,就是把复杂的事情简单化。使得软件的可测性高、易用性高。
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对于大型团队来说真的适合。
- 可扩展高。使开发人员尽可能无缝地同时处理它。
- 代码达到了可重用性和可测试性。
- 根据应用程序的作用划分应用程序组件,设定明确的责任。