目录:
- MVC-Apple
- MVC-变种
- MVP
- MVVM
- 分层设计
- 架构与设计模式的区别
一. MVC-Apple
MVC-Apple.pngTableView就是苹果版MVC的代表。
优点:View、Model可以重复利用,可以独立使用
缺点:Controller的代码过于臃肿
二. MVC-变种
MVC变种之后最大的区别就是View是可以拥有模型的。
MVC-变种.png优点:对Controller进行瘦身,将View内部的细节封装起来了,外界不知道View内部的具体实现。
缺点:View依赖于Model,不能独立使用(也不一定是坏事)。
三. MVP
MVP就相当于用P代替了MVC-Apple的C,而且Model和View之间也是没有任何关联的。
MVP.png四. MVVM
MVVM.png乍一看,MVVM和MVP有点像,它们的共同点就是MVVM也把View和Model的一些业务逻辑扔到VM里面,不会扔到控制器里面。不同点就是属性监听绑定的问题,View拥有ViewModel并监听ViewModel里面属性的改变,当属性改变时会更新View。
分层设计
上面我们说的MVC、MVP、MVVM其实都是界面层的东西,再大一点就是分层设计了。
分层设计.png架构与设计模式的区别
架构一般比设计模式大,比如整个应用程序分为多少层架构,比如将类分成很多角色(M、V、C、P、VM等等)这些都是架构层面的问题。分层之后每一层肯定好多类,那么这么多类怎么组织起来呢?就可以使用设计模式 。
- 设计模式(Design Pattern)是一套被反复使用、代码设计经验的总结,也是处理类与类之间的关系,但是它比较小,没有架构那么大。
- 使用设计模式的好处是:可重用代码、让代码更容易被他人理解、保证代码可靠性,一般与编程语言无关,是一套比较成熟的编程思想。
iOS中主要使用单例模式、工厂方法模式、代理模式、观察者模式。
博客地址:iOS-架构
网友评论