一、MVC模式
模型(Model)—— 用于处理应用程序数据逻辑。通常模型对象负责在数据库中存取数据
视图(View)—— 处理数据显示的部分。通常视图是依据模型数据创建的。
控制器(Controller)—— 处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
优点:
耦合性低 —— 视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码
重用性高 —— 多个视图能共享一个模型
生命周期成本低 —— MVC使开发和维护用户接口的技术含量降低。
缺点:
增加了系统结构和实现的复杂性 —— 对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
视图与控制器间的连接过于紧密 —— 视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
视图对模型数据的低效率访问 —— 依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
参照://www.greatytc.com/p/f98bd6650014
MVP模式是MVC模式的改良,其实最明显的区别就是,MVC中是允许Model和View进行交互的,而MVP中很明显,Model与View之间的交互由Presenter完成。
MVVM是Model-View-ViewModel的简写. 它是有三个部分组成:Model、View、ViewModel。Model:数据模型层。包含业务逻辑和校验逻辑,View:屏幕上显示的UI界面(layout、views),ViewModel:View和Model之间的链接桥梁,处理视图逻辑。
参照://www.greatytc.com/p/2fbb3fc84449
MVC模式、MVP模式和MVVM模式都作为用来分离UI层与业务层的一种开发模式。这些模式之间的差异可以归纳为对这个问题处理的方式的不同。