目前流行的架构模式是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)数据双向绑定不利于代码重用