服务端N层架构体系中
MVC 今天才知道原来传统的MVC中V是可以直接与M交互,M也做了些弱业务处理
MVP 所以至今为止公司用的都是MVP,就是M和V是完全分离的,少了P就相当于两个孤岛,MV交互必须通过P
在服务端N层架构体系中,MVC,MVP等架构思想仅是运用在表示层,而移动端的是应用在整个项目
移动端架构
胖Model包含了部分弱业务逻辑
。胖Model要达到的目的是,Controller从胖Model这里拿到数据之后,不用额外做操作或者只要做非常少的操作,就能够将数据直接应用在View上
胖Model要处理弱业务,数据转换等。
瘦Model只负责业务数据的表达,所有业务无论强弱一律扔到Controller
。瘦Model要达到的目的是,尽一切可能去编写细粒度Model,然后配套各种helper类或方法来对弱业务做抽象,强业务依旧交给Controller
。
MVCS 是一种基于瘦model的解决方案,把原本对Model数据存取的这块抽象出来形成store层,尽量减小model层的粒度。
MVVM 实际上是M-VM-C-V VM是从M(胖model)中分出来的,负责数据的加工,加工成view能直接展示的数据,c仅仅是负责配置viewModel和view (所以看上去好像view和model直接交互)
用户的操作产生的数据(输入的文本,选择的行indexPath)要从view传到viewModel,viewModel原是属于model层的,View并不适合直接持有ViewModel,所以要靠ReactiveCocoa传数据过去
不管MVVM也好,MVCS也好,他们的共识都是Controller会随着软件的成长,变很大很难维护很难测试