Develop - Patterns

970 views

Published on

关于RobotGaiaAnt中的设计模式,和开发规范说明。
http://kevincao.com/2010/03/workflow-patterns/

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
970
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Develop - Patterns

  1. 1. Develop Guideline
  2. 2. Pattern - MVCS • Model • View • Controller • Service
  3. 3. Dependencies Map 依赖关系图 Actor1 View1 Actor2 Page View2 Actor3
  4. 4. Static 静态类 private var str:String; str = Model.foo(); Singleton 单例 private var str:String; str = Model.getInstance().foo(); Dependency Injection [Inject] public var model:IModel; 依赖注入 private var str:String; str = model.foo();
  5. 5. Event Flow 事件流 Signal Bus Actor1 Actor2 Actor3 Page View1 View2
  6. 6. View • 作为视图元件(MC,Graphic,Button,组件等) 的容器。 • 监听但不处理视图元件发出的事件,仅转发 为对应的自定义信号(Signal)。
  7. 7. View 提供以下公开方法: • init() //初始化 • update() //更新 • destroy() //销毁
  8. 8. Page(Mediator) • 监听View发出的信号。 • 调用系统中其他对象(Model,Service…)的方法 或数据,或者直接发出系统信号。 • 监听系统中的信号,包括Gaia中的事件,并对 View执行相关的操作。
  9. 9. Page(Mediator) 包含以下保护方法: • init () //初始化视图和代理设置 • destroy () //销毁视图和代理设置
  10. 10. Page(Mediator) • 访问assets对象来获取各种外部资源。 (通过Gaia框架的加载机制实现) • 获取系统里其他对象(包括Model, Service, Proxy和AppSignalBus等)的引用。 (通过Robotlegs的注入功能实现)
  11. 11. Controller • Controller层主要由Command(命令)模式实现。 • Robotlegs架构提供了将事件映射为一个命令 (Command)的功能。通过Signals插件的扩展, 信号也可以映射成为一个命令。 • 命令是一个无状态的对象。主要用于封装操 作,解除视图与系统其他对象之间的依赖关 系。
  12. 12. Controller - Signals • 架构提供了统一的信号传递器AppSignalBus, 所有系统对象可以通过它来发送信号。 • 系统信号可以由其相关联的命令(Command)来 处理,或者被其他Page(Mediator)监听。 • 只有Page(Mediator)可以监听信号。
  13. 13. Model/Service • Model用于存储状态,封装应用层逻辑。 • Service不保持状态,只负责外部资源的获取, 并处理转换为系统内使用的数据格式。 • Model和Service通过发出系统信号通知系统内 的其他对象。 • Model和Service都不应该监听事件。 • Model和Service应该是基于接口的实现。
  14. 14. Other Classes • MainContext • mvcs.MediatorPage • mvcs.AppActor
  15. 15. MainContext MainContext是应用程序主环境的配置类,包 含以下几种依赖注入的关系定义: • 系统中Model/Service/Proxy的映射 • 命令与事件/信号的映射 • 视图与代理的映射
  16. 16. MediatorPage MediatorPage类继承自Gaia框架中Page的基 类AbstractPage,扩展了系统信号的传递功 能(通过注入的AppSignalBus)。
  17. 17. AppActor AppActor类继承自Robotlegs架构中的Actor, 扩展了系统信号的传递功能(通过注入的 AppSignalBus)。
  18. 18. Structure of src folder • models, views, controllers, services 对应MVCS模式的包 • signals 信号类,代替内置的Event • pages Gaia默认的Page包 • assets 通过ActionScript编译的资源 • mvcs MVCS模式的扩展基类

×