实现
术语阐述
及
最佳实践
用PureMVC创建健壮、易扩展、易维护的客户端程序
附ActionScript 3及MXML实例
PureMVC 是Futurescale 公司创建并维护的开源自由的程序框架。Futurescale, Inc. Copyright © 2006-08, Some rights
PureMVC 结构
4
• Model 与 Proxy 4 • View 与 Mediator
4 • Controller 与 Command 4 • Façade 与 Core
5 • Observer 与 Notification
5 • Notification 可以被用来触发Command 的执行
5
• Mediator 发送、声明、接收Notification 6 •
Proxy 发送,但不接收Notification 6
Façade 7
• 具体Façade 是什么样子的? 7 • 为程序创建Façade 7 •
初始化Façade
10
Notification 12
• Event 与Notification 12 •
定义Notification 和Event 常量
13
Command 14
• SimpleCommand 和MacroCommand 的使用 15
• 降低Command 与Mediator, Proxy 的耦合度 15 •
复杂的操作与业务逻辑
16
PureMVC 是Futurescale 公司创建并维护的开源自由的程序框架。Futurescale, Inc. Copyright © 2006-08, Some rights
Mediator 21
• Mediator 的职责
21
• 转化View Component 类型
22 • 监听并响应View Component
23
• 在Mediator 里处理Notification
25
• Mediator 和Proxy 之间、Mediator 和其他Mediator 之间的耦合
27
•
用户与View Component 和Mediator 的交互 28
Proxy 33
• Proxy 的职责 34
• 转换数据对象
34 • 避免对Mediator 的依赖
36
• 封装域逻辑
37 •
与Remote Proxy 通信
38
启示
PureMVC 是一个定位于设计高性能RIA 客户端的基于模式
的框架。现在它已经被移植到其他的平台上,包括服务器端环境。本篇文档论述针对于客户端。
PureMVC 在不同平台语言下的阐述、实现,PureMVC 所使用的模式在“四人帮”的《设计模式:可复用面向对象软件的基础》一书中有很好的论述。
强烈推荐。
PureMVC结构
PureMVC框架的目标很明确,即把程序分为低耦合的三层:Model、View和Controller。
降低模块间的耦合性,各模块如何结合在一起工作对于创建易扩展,易维护的应用程序是非常重要的。
在PureMVC实现的经典MVC元设计模式中,这三部分由三个单例模式类管理,分别是Model、View和Controller。三者合称为核心层或核心角。
PureMVC中还有另外一个单例模式类——Façade,Façade提供了与核心层通信的唯一接口,以简化开发复杂度。
mvc实例Model 与 Proxy
Model保存对Proxy对象的引用,Proxy负责操作数据模型,与远程服务通信存取数据。
这样保证了Model层的可移植性。
View 与 Mediator
View保存对Mediator对象的引用。由Mediator对象来操作具体的视图组件(View Component,例如Flex的DataGrid组件),包括:添加事件,发送或接收Notification ,直接改变视图组件的状态。
这样做实现了把视图和控制它的逻辑分离开来。
Controller 与 Command
Controller保存所有Command的映射。Command类是无状态的,只在需要时才被创建。
PureMVC是Futurescale公司创建并维护的开源自由的程序框架。Futurescale, Inc. Copyright © 2006-08, Some rights
PureMVC结构
Controller 与 Command
Command可以获取Proxy对象并与之交互,发送Notification,执行其他的Command。经常用于复杂的或系统范围的操作,如应用程序的“启动”和“关闭”。应用程序的业务逻辑应该在这里实现。
Façade 与 Core
Façade类应用单例模式,它负责初始化核心层(Model,View和Controller),并能访问它们的Public方法。
这样,在实际的应用中,你只需继承Façade类创建一个具体的Façade类就可以实现整个MVC模式,并不需要在代码中导入编写Model,View和Controller类。
Proxy、Mediator和Command就可以通过创建的Façade类来相互访问通信。
Observer 与 Notification
PureMVC的通信并不采用Flash的EventDispatcher/Event,因为PureMVC可能运行在没有Flash Event和EventDispatcher类的环境中,它的通信是使用观察者模式以一种松耦合的方式来实现的。
你可以不用关心PureMVC的Observer/Notification机制是怎么实现的,它已经在框架内部实现了。你只需要使用一个非常简单的方法从Proxy, Mediator, Command和Facade发送Notification,甚至不需要创建一个Notification实例。
Notification可以被用来触发Command的执行
Facade保存了Command与Notification之间的映射。当Notification(通知)被PureMVC是Futurescale公司创建并维护的开源自由的程序框架。Futurescale, Inc. Copyright © 2006-08, Some rights
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论