一、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 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之间有双向数据绑定关系。 |
开发中常用的设计模式
最新推荐文章于 2024-08-30 22:16:39 发布
本文深入探讨了软件开发中广泛使用的设计模式,包括单例模式、工厂模式和观察者模式。通过实例解析,阐述了这些模式如何提高代码复用性、可维护性和可扩展性,并提供了在实际项目中有效应用设计模式的策略和最佳实践。
摘要由CSDN通过智能技术生成