目前流行的架构模式是MVC、MVP和MVVM
1.MVC
Model(模型)、View(视图)、Controller(控制器)
优点:
1)耦合性低,视图层和业务层分离
2)可维护性高,简单,方便修改
3)部署快
缺点:
1)没有明确的定义
2)不适合小型,中等规模的应用程序
3)视图与控制器间的过于紧密的连接
4)视图对模型数据的低效率访问
2.MVP
模型层(Model):负责存储、检索、操纵来自数据库或者网络的数据。 视图层(View):用户界面,一般采用XML文件进行界面的描述。 逻辑处理层(Presenter):作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。
优点:
1)解耦,模型与视图完全分离
2)模块职责划分明显
3)代码复用,灵活
4)测试方便,可脱离UI
缺点:
1)视图和Presenter的交互会过于频繁
2)增加来很多类文件
3.MVVM
Model(数据层)、ViewController/View(展示层)、ViewModel(数据模型)
优点:
1)低耦合。View可以独立于Model变化和修改,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。 2)ViewModel可复用 3)独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,生成xml代码。 4)双向绑定时,ViewModel解决MVP中View(Activity)和Presenter相互持有对方应用的问题,界面由数据进行驱动,响应界面操作无需由View(Activity)传递,数据的变化也无需Presenter调View(Activity)实现,使得数据传递的过程更加简洁,高效。
缺点:
1)数据绑定使得 Bug 很难被调试
2)数据双向绑定不利于代码重用