(2012-04-03 老物搬运)初识Robotlegs

什么是 robotlegs ?引用百度知道的话:“ Robotlegs 是一个用来开发Flash, Flex, AIR 应用的纯 AS3 微架构(框架). Robotlegs 专注于将应用程序各层排布在一起并提供它们相互通讯的机制. Robotlegs 试图通过提供一种解决常见开发问题的经过时间检验的架构解决方案来加速开发. Robotlegs 无意锁定你到框架, 你的类就是你的类的样子, 而且应该很容易地切换到其他框架.

它与 pureMVC 一样,都是使用 MVC 思想搭建结构的一套框架,他们的最终目的都是使程序松耦合。而它又与 pureMVC 不同

首先他没有像pureMVC那样四处开花,使用event来传递信息的RobotLegs决定了它只能存在在AS平台上;

其次它使用了一个叫做依赖注入的东西,听起来好像比较深奥,事实上就是多使用了一个[Inject]元标签,我们在程序中总是通过这个标签定义的变量来获取某个View component、某个Model等等的引用。而在pureMVC中,我们如果要获得某个引用,一般是使用façaderetrieveMediator(mediatorName)retrieveProxy(proxyName)这样的方法。

最后,使用注入机制的RobotLegs不需要你重新去改写你的类,不像pureMVC那样要求你所有的类继承它提供给你的类。

这些只是我本人看了一两天所感受到的,如果有理解不周全的地方还请指正。。。

 

 

 

下面是我尝试使用 RobotLegs 做的一个简单的留言本 demo 。我会在后面介绍整个 demo 的运作流程(黄字部分


首先简单介绍一下RobotLegs的组成成员,见下图






Context:这是RobotLegs的总线,差不多相当于pureMVCfaçade的概念吧,整个框架的初始化就是从它开始。

View :这部分是你原先就写好的类,他们可能有着自己的事件侦听和简单逻辑——比如 demo 中的隐藏 / 显示历史记录按钮。你需要在 context startup 函数中把你的 view Mediator 相关联,让它作为视图组件的经纪人,管理与其他 actor 的交流。

因此Mediator既可以发送事件到RobotLegs的事件总线(比如:有人按了获取数据按钮了,谁负责加载数据的赶紧的),也可以从总线中侦听事件(比如:管数据的说他的数据已经就绪了,那我直接拿来显示了)。

其实在严格的 MVC 模式下,是不能出现第二种情况的,正确的方式是:管数据的说他数据已经就绪了, RobotLegs 将自动执行一条 Command ,由这 Command 负责把数据交给 Mediator 。也就是说 View Model 之间的沟通必须经过 Controller 但由于 RobotLegs 中,我们无法在 Command 内部轻易获得 view 的引用,所以在 Command 里无法直接对 view 进行操作,折衷的办法可以让 Com mand 再广播一条事件,让 Mediator 侦听来自 command 的事件并对 view 进行操作。

ModelService:它们是处在程序底层的,前者用于长久地保存数据,后者用于与外界沟通解析数据提供给Model。当然你可以使用传统MVC模式,假如舍弃Service,并且没有remoteproxy,你的Model不得不得自己去与外界沟通。Model

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值