# designModel **Repository Path**: aowtec_yaolinnan/designModel ## Basic Information - **Project Name**: designModel - **Description**: android主流代码设计模型,包括MVC、MVP、MVVM - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-20 - **Last Updated**: 2021-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README android主流代码设计模型,包括MVC、MVP、MVVM MVC 视图层(View) 对应于 xml 布局文件和 java 代码动态 view 部分控制层(Controller) MVC 中 Android 的控制层是由 Activity 来承担的, Activity 本来主要是作为初始化页面,展示数据的操作,但是因为 XML 视图功能太弱,所以 Activity 既要负责视图的显示又要加入控制逻辑,承担的功能过多。模型层(Model) 针对业务模型,建立数据结构和相关的类,主要负责网络请求,数据库处理,I/O 的操作。 MVP 通过引入接口 BaseView,让相应的视图组件如 Activity,Fragment 去实现BaseView,实现了视图层的独立,通过中间层 Preseter 实现了 Model 和 View的完全解耦。MVP 彻底解决了 MVC 中 View 和 Controller 傻傻分不清楚的问题,但是随着业务逻辑的增加,一个页面可能会非常复杂,UI 的改变是非常多,会 有非常多的 case,这样就会造成 View 的接口会很庞大。 MVVM MVP 中我们说过随着业务逻辑的增加,UI 的改变多的情况下,会有非常多的跟UI 相关的 case,这样就会造成 View 的接口会很庞大。而 MVVM 就解决了这个 问题,通过双向绑定的机制,实现数据和 UI 内容,只要想改其中一方,另一方 都能够及时更新的一种设计理念,这样就省去了很多在 View 层中写很多 case 的情况,只需要改变数据就行。