Android开发中常用的设计模式

来源:互联网 发布:淘宝老客户运营 编辑:程序博客网 时间:2024/04/30 15:56

开发中常用的设计模式

一、MVC设计模式

MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

● (控制器Controller)- 负责转发请求,对请求进行处理。//逻辑处理
● (视图View) - 界面设计人员进行图形界面设计。
● (模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。//数据源

MVC的优点:

1、低耦合性
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码
2、高重用性和和实用性
适合多种场合,语言
3、较低的生命周期成本
MVC使开发和维护用户接口的技术含量降低。
4、部署时间短

5、维护方便
分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

MVC缺点:
随着时间推移,MVC模式也暴露出大量缺点,因为MVC模式本质上是一个结构型模式,结构模式相比行为模式而言,实际就是静止的,相对固定的,而随着B/S和互联网应用不断普及,Web 2.0和社会化媒体 以及游戏等大量频繁交互应用普及,相对静止的MVC模式已经不适合高度交互注重行为的应用了。C/S 客户端 B/S浏览器、服务器

二、MVP设计模式

MVP模式(Model-View-presenter)是Android开发中常用的的设计模式之一,把系统分为
模型(Model)、视图(View)和主导器(Presenter)
● Model-处理业务逻辑(主要是数据读写,或者与后台通信(其实也是读写数据)
● View-处理ui控件
● Presenter-主导器,操作model和view

MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。

案例:数据库封装的使用、网络请求的使用;

MVC和MVP的区别:

作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。

MVP的优点:

● 模型与视图完全分离,我们可以修改视图而不影响模型

● 可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部

● 我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁。

● 如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)

三、MVVM模式

MVVM即Model-View-View Model。这个模式提供对View和View Model的双向数据绑定。这使得View Model的状态改变可以自动传递给View。典型的情况是,View Model通过使用obsever模式(观察者模式)来将View Model的变化通知给model。

Model
Model层代表了描述业务逻辑和数据的一系列类的集合。它也定义了数据修改和操作的业务规则。

View
View代表了UI组件,他只负责展示从Presenter接收到的数据。也就是把模型转化成UI。

View Model
View Model负责暴漏方法,命令,其他属性来操作VIew的状态,组装model作为View动作的结果,并且触发view自己的事件。

这个模式被广泛应用于WPF,Silverlight,Caliburn,nRoute 等。

MVVM模式关键点:

1、用户和View交互。
2、View和ViewModel是多对一关系。意味着一个ViewModel只映射多个View。
3、View持有ViewModel的引用,但是ViewModel没有任何View的信息。
4、View 和ViewModel之间有双向数据绑定关系。

0 0
原创粉丝点击