2009 年它的开源策略。
中分离出 Presenter , 将绝大部分逻辑代码集中在 Presenter ,使 得 View 变得非常简单 ,View 接收到事 件 后 ,发 送 到 Presenter ,2 MVCMVP 集成模式 Presenter 再根据事件的类型, 分配给不同的 Command 进行处 理。
在 MVP 模式中视图和模型是完全分离的, 他们通过 Pre-2.1 MVC 模式 senter 进行交互。
MVP 主要解决的问题是 UI 控件重用的问题, 设计模式是某一类
问题的解决方案。
MVC 和 MVP 是目前 将界面层 UI 涉及的业务逻辑减至最少, 这样更易实现项目的两种比较流行的应用系统设计模式。
交换开发。
MVC (Model-View-Controller ,模 型 、视 图 、控 制 器 )是 一 种 2.3 MVCMVP 集成设计模式目前广泛流行的
软件设计模式,它把一个应用的输入、处理、输 利用 MVC 开发模式可以降低代码的管理与 维 护 难 度 ,提出流程按照 Model 、View 、Controller 的方式进行分离 , 模型、视 高重 用 性 ,系 统 分 工 确定 后 ,MVC 各 部 分 可 以同 步 开 发 ,提 高图、控制器三者之间的关系如图 2 所示。
开发效率。
而 MVP 模式进一步弱化了逻辑层与界面层的耦合, 增强了模块的扩展性和代码重用性,界面(View )和界面逻辑的 处 理 (Command )分 离 ,容 易 上手 并 且 分 工 更 明确 ,配 合 适 当 的 开发过程,能够很大程度上提高开发的速度。
充分利用 MVC 和 MVP 两种设计模式的优点,将两者有机地结合在一起 ,就形成 了 MVCMVP 集成
设计模式。
3 MVCMVP 在RIA开发中应用 图2 模型、视图、控制器三者之间的关系 Model 事务逻辑模块 ,这是整个模型中的核心部分 。
它表 3.1 RIA 中的 MVCMVP示的是解决
方案空间的真正的逻辑。
它采用面向对象的方法, 在 RIA
网络应用程序架构下的页面组件可视为一个 MVC将问题领域的对象抽象为应用程序对象。
在这些抽象的对象中 模式,如图 4 所示。
封装了对象的属性和这些对象所隐含的逻辑 。
View 用户视图模块,承担连接用户和应用
程序之间的接口角色。
一方面,View模块将用户的请求传递给应用程序,触发应用程序对用户请求的处理逻辑;另一方面,View 模块将应用程序对用户请求的处理结果返回给用户。
Controller 流程控制模块,这是前面两者的接口。
控制器根据用户的操作判断所要执行的业务逻辑 ,关联 图4 组件中的 MVC 模式模型和视图。
由于 MVC 的 3 个模块相互独立,改变其中一个不 组件中连接外部数据的对象或组件是 模 型 ,Movie Clip 和会影响其他两个,所以依据这种设计思想能构造良好的松耦合 组件是视图 , 组件中的程序逻辑对键盘和鼠标的反应 是 控 制的组件。
松耦合使应用程序环境更敏捷,能更快地适应更改,并 器。
且降低了风险。
除此之外,系统维护也更方便。
IE 浏 览 器 (ASP/
JSP/
PHP/CFM ) DBMS 相 结 合 的 三 层 架2.2 MVP 模式 构的 MVP 模式,如图 5 所示。
MVP 是指 Model-View-Presenter 模式,由 Martin Fowler 发现并进行研究,是 MVC 模式的改进版,如图 3 所示。
图5 客户端、服务器和数据库的 MVP 模式 MVCMVP 集成设计模式就是用 MVP 模式开发 RIA 应用 系统(application )的整体柜架,而用 MVC 模式开发应用系统中 的组件(Component ),如图 6 所示。
图3 MVP 模式 随着 UI 创建技术 (如 ASP.
NET 和 Windows Form )的功能越来越强大,让 UI 层执行更多功能已成为普遍的做法。
由于没有清晰的职责划分,UI 层经常成为逻辑层的全能代理 ,而后者实际上属于应用程序的其他层。
MVP 模式是专门适用于解决此问题的一种设计模式。
MVP 同样也具有 View 和 Model ,不同的是 MVP 中的 P 是Presenter 。
MVP 主要是在 MVC 的基础上 进一 步 分 工 ,从 View 图6 MVC/MVP 集成设计模式第7期 王建平:MVCMVP 集成模式在 RIA 开发中的应用 117 MVCMVP 集成 设 计 模 式 可 以使 系 统 中 各 个 部件 相 对 独 考虑到 Flash 应用程序的小 MVC 模式开发仿真实验具有立,改变其中一个不会影响其它部件 (如应用程序组件的增 加 其独特的优势,它可以将用户界面上的影片剪辑和组件作为视或修改,不会影响整个
系统的应