app架构是一种开发方案
首先就是关于Model层的理解:
我的理解:Model层是属性和获取这些属性方法的集合。
比如在Android里,数据库里的数据是Model层,ORM框架也是Model层,假如要进行搜索操作,那么搜索的条件不属于Model层,以及搜索后所对数据进行的预处理也不是Model层.
其实这两种不属于
在android中:
默认的开发模式是MVC的 其中Activity是Controller,xml文件和自定义的控件的是View.而那些网络请求操作的Network类是Model,然后Network请求的回调接口里面直接更新View属性。
然后为了解决VC之间的耦合,将上面Network回调接口改成不直接更新View,而是交给Presenter来中转一下,同样,在View点击时也是先交由Presenter来中转,这样的开发模式就是MVP。
此时M与V完全解耦,既可以将View层完全重构而无需担心Model层需要重新更改测试,也可以将Model层实现改为另一种方式,不用考虑View的问题。
而MVVM也是对MVC的一种改进,它也是讲View与Model解耦,但是形式不一样,需要注意的是需要有一个ViewModel框架来支撑View和ViewModel的交互。而ViewModel层的作用也就是业务逻辑,什么时候绑定一个View什么时候解绑,然后业务逻辑交给Model层来做。
需要注意的事,有时候业务逻辑很难区分,这时候就要根据项目确认哪些是通用的东西,可以作为Model层,哪些是只有这个页面才会用到的放到业务逻辑层。 这跟个人对整体的把控和项目经验有关。