MVC框架
MVC是将业务逻辑、界面进行解耦,通过中间的Control对界面数据和操作进行处理,然后将处理结果反馈给业务逻辑层也就是Modle。
Modle:业务逻辑层,本层是应用数据的核心,例如数据库和表
View:视图层,其是接收用户操作 和对model数据的展示。
Control:控制器,接收用户输入和操作,例如增删改成数据库,然后将操作数据录入model。
MVC虽然通过control把视图层和业务逻辑层进行了分类,但是各种视图都是根据model的逻辑来设置的,因此view 层和 model层并非完全独立,例如android中的自定义控件,会根据具体的逻辑来进行设置。
MVP框架。
鉴于MVP存在view层中还关联了很多model层中的逻辑,因此在MVC基础上就出现了MVP框架。MVP框架通过presenter将view 和 model完全隔离,mode只存储业务逻辑数据,全部的操作处理全在presenter层,而view 层也只会和presenter层连续,跟model无任何连续。
VIEW 层 和 presenter层可以并行进行,即是VIEW层尚不具备,presenter也可以进行提前驱动测试。
- 模块职责分明。
- MVP缺点就是,view的很多渲染都是放在presenter层中,所以view层和presenter交互过于平凡。因为交往过于平凡,view层的渲染放在presenter层,那么往往view层发生变更,presenter层也会跟着变化。因为大量逻辑处理都集中在presenter层,那么presenter的体量也会随之庞大。
android中的MVC框架结构:
view层:各种viewgroup、view,各种布局文件。
control层:activity 或者 Fragment,activity 和 Fragemnt 的生命周期及其对控件事件的监控来获取数据,并且对数据进行处理,处理之后的结果保持到model层。
model层:例如sharepeferences ,SQLite,数据库等。