MVC、MVVM、MVP是常见的3中软件架构设计模式,主要通过分离关注点的方式来组织代码结构,优化开发效率。
模型层,负责存储页面的业务数据,以及对响应数据的操作视图层,负责页面的显示逻辑控制层,主要用于处理业务观察者模式,当model成数据发生改变时,会通知有关的view页面层更新页面。
优点:
耦合性低,方便维护,可以利于分工协作,重用性高;
缺点:
使项目构架变得复杂,对开发人员要求高
数据模型,数据和业务逻辑都在Model层中定义;视图层,负责数据的展示;视图模型,负责监听Model中数据的改变并且控制视图的更新,处理用户交互操作;view和model是没有直接联系的,而是通过ViewModel这个中间商进行联系。View和ViewModel之间以及 Model和ViewModel之间的交互是双向的。

优点:
数据源和视图实现了双向绑定,很好的做好了数据的一致性,相比于MVP各层的耦合度更低,一个ViewModel层可以给对个View层共用。
缺点:
使用了dataBinding,增加了大量的内存销毁,增加了程序的编译事件,项目越大内存开销越大,数据绑定是的Bug很难被调试。
模型层,用于数据存储以及业务逻辑。视图层,用于展示与用户实现交互的页面,通常实现数据的输入和输出功能。表示器,用于连接Model层、View层,完成Model层与View层的交互,还可以进行业务逻辑的处理。