一、架构(Architecture)
1、架构的理解:
- 软件开发中的设计方案
- 类与类之间的关系、模块与模块之间的关系、客户端与服务端的关系
2、经常听到的架构名词
- MVC、MVP、MVVM、VIPER、CDD
- 三层架构、四层架构
二、Apple版MVC
Apple的MVC中,controller持有Model和View,Model和View都不知道对方的存在,数据交互都是在Controller中进行的

- 优点:View、Model可以重复利用,可以独立使用
- Controller的代码过于臃肿
三、MVC的变种
这种形式其实就是给view传model,而不再是在Controller里面给view赋值,把赋值的操作放到view里面

- 优点:对VC进行瘦身,将View内部的细节封装起来了,外界不知道View内部的具体实现
- 缺点:View依赖于Model
四、MVP模式

VC被拆分,只用它处理View的点击事件,数据绑定,等处理,
而View被拆分,更加专注于视图的更新,只做跟视图相关的操作,
而Presenter被独立出来,用于沟通View和Model之间的联系,Model不能直接作用于View 的更新,只能通过Presenter来通知View进行视图的刷新,比如showLoading(),showEmpty(),showToast()等等,
这样View就完全被独立出来了,只是被动接受Presenter的命令,这样避免了View 有过多的逻辑处理,更加简单。
Presenter持有了Model。Model 只用于处理跟数据获取相关的逻辑。
- 优点:View、Model 可以重复利用,可以独立使用,代码的处理都放在了Presenter里面
- 缺点:Controller可能要建立多个Presenter
五、MVVM模式

- 优点:View、Model 可以重复利用,可以独立使用,代码的处理都放在了viewMode里面
- 缺点:Controller可能要建立多个viewMode
六、三层架构、四层架构

网友评论