开发中常用的设计模式

本文深入探讨了软件开发中广泛使用的设计模式,包括单例模式、工厂模式和观察者模式。通过实例解析,阐述了这些模式如何提高代码复用性、可维护性和可扩展性,并提供了在实际项目中有效应用设计模式的策略和最佳实践。
摘要由CSDN通过智能技术生成
、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-主导器, 操作modelview
MVP 是从经典的模式MVC演变而来, 它们的基本思想有相通的地方: Controller/Presenter负责逻辑的处理, Model提供数据, View
负责显示。
案例: 数据库封装的使用、 网络请求的使用;
MVCMVP的区别:
作为一种新的模式, MVPMVC有着一个重大的区别: 在MVPView并不直接使用Model, 它们之间的通信是通过Presenter (MVC
Controller)来进行的, 所有的交互都发生在Presenter内部, 而在MVCView会直接从Model中读取数据而不是通过 Controller
MVP的优点:
模型与视图完全分离, 我们可以修改视图而不影响模型
可以更高效地使用模型, 因为所有的交互都发生在一个地方——Presenter内部
我们可以将一个Presenter用于多个视图, 而不需要改变Presenter的逻辑。 这个特性非常的有用, 因为视图的变化总是比模
型的变化频繁。
如果我们把逻辑放在Presenter中, 那么我们就可以脱离用户接口来测试这些逻辑( 单元测试)
三、MVVM模式
MVVMModel-View-View Model。 这个模式提供对ViewView Model的双向数据绑定。 这使得View Model的状态改变可以自动传递
View。 典型的情况是, View Model通过使用obsever模式( 观察者模式) 来将View Model的变化通知给model
Model
Model层代表了描述业务逻辑和数据的一系列类的集合。 它也定义了数据修改和操作的业务规则。
View
View代表了UI组件, 他只负责展示从Presenter接收到的数据。 也就是把模型转化成UI。View ModelView 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之间有双向数据绑定关系。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值