何时,纱窗外,风摇翠竹

常用链接

统计

最新评论

  • 1. re: 慎用AJAX框架
  • AJAX是中国技术领域的红灯区。。想爽,但又怕潜伏着危险。。。
  • --阿斯顿飞
  • 2. re: 慎用AJAX框架
  • 评论内容较长,点击标题查看
  • --夏如嘏
  • 3. re: 慎用AJAX框架
  • ajax 要懂的原理,同意楼主,框架慎用
  • --骄傲
  • 4. re: 慎用AJAX框架
  • @读书、思考、生活
    2、bug满天飞,那就说明是水平不到家
    您的水平能高到没有bug?
  • --楼主
  • 5. re: 慎用AJAX框架
  • 只要你懂xmlhttp,为什么非要用ajax呢,我从2000年开始使用xmlhttp,ajax刚出来的时候看了一眼,冷笑一声。所以争论没有意义,到处都是新瓶装老酒的故事
  • --挨踢的货

顿悟 - 基于事件驱动模型架构Flex程序

   原文地址: http://www.pjade.com/html/study/20070703/27.html

    这些天一直在为Flex程序中的各个组件之间有效的传递参数,协调组件间的行为等问题感到困惑。由于Flex程序实际上是一个运行在客户机上的的客户端程序,因此在Flex内部组件之间无法像B/S程序基于HTTP协议那样发一个请求,由服务器端通过一个标准接口读出参数,处理并做出响应。也就是说用表单、URL的方式传递参数和控制流程肯定是行不通的。前一段时间一直尝试像Javascript中那样用函数调用,甚至是全局变量来做,感觉越做越复杂,程序的OO结构也受到很大的破坏,十分的烦恼。

     今天整理书架时无意中看到了压了多年箱底的那本《深入浅出MFC》,一下子回想起VC和MFC框架中的最核心的事件处理机制,再想到以前研究flexstore源码时看见过基于事件来控制程序行为的代码,顿时有一种醍醐灌顶的感觉!! Flex 的客户端程序基本上是一种基于组件的C/S程序,而当年VC、VB、Dephi等等C/S程序无一例外的都是基于事件驱动的!当年侯先生正是由于在《深入浅出MFC》一书中深入的剖析了MFC框架中的事件流的机制,揭示了在API的背后数据是如何被分发和处理的过程而名扬五洲。“消息为基础、事件驱动之”这句话则是在Windows编程中最基本和最重要的概念,也是C/S程序编程中的最重要的概念之一,在搞了多年B/S程序开发之后,我却是已经将这句当年自以为完全理解的观念抛到脑后去了,想来也挺有意思,看来虽着RIA的发展和推广,事件驱动模型这一度几乎被弃用东西又要大行其道了。

    其实一直以来事件驱动从来没有远离过我们,网页中一个对某个按钮的onclick事件的触发,便是事件驱动的一个应用,但是我却忘记了在这些基于组件的实现的编程模型中的事件驱动所起到的灵魂作用。和B/S程序中请求/响应的模式不同,事件驱动实现的是请求/订阅的方式,二者从架构到编程都有很大的区别,我用B/S的思维模式去写事件驱动的程序,不乱才怪!事件驱动的技术原理实际上是比较简单的,Observer模式对它有很好的总结,感兴趣的朋友可以自己看一下。我这次最大的问题实际是来自于思维模式上,其实只需要:放弃用请求触发行为的想法,改用事件触发!

    当然Flex程序并不是像VC那样的纯C/S程序,它一样需要用请求/响应的方式完成很多的功能。今天简单的思考了一下,觉得Flex程序应该这样架构:

1. Flex程序的整体架构要基于事件驱动模型来架构(事实是这种基于组件的编程方式你必须基于事件驱动来构架)。这样的好处不光是易于实现功能,而且由于事件驱动松耦合的特点,也方便于设计一个很好的系统结构。
2. 对Flex程序本身,各个模块也基于事件驱动的模型按分层、分组件的方式层层搭建。
3. 对于需要和Flex程序配合使用的服务器端程序,还是要严格按照MVC模式构建。
4. 对于需要和服务器端交互的flex客户端程序模块,利用flex远程调用的异步特性,在向服务器端请求,接收到响应数据后触发相应的事件,依然走事件驱动的路子。

posted on 2007-07-05 10:12 weidy 阅读(2151) 评论(3)  编辑  收藏 所属分类: RIA

评论

# re: 顿悟 - 基于事件驱动模型架构Flex程序 2007-07-16 12:17 abent

呵呵,深有同感啊,其实Flex应用就是一种批上B/S外衣的C/S,要按照C/S的思维和模式去设计.  回复  更多评论   

# re: 顿悟 - 基于事件驱动模型架构Flex程序 2007-07-16 23:10 weidy

@abent
兄台也在开发Flex程序么,好的很啊,有机会多交流。Flex程序的架构确实给我们提出了新的挑战,客户端C/S,整体又要B/S,然后还需要能脱离B/S单独转C/S,模式很新。我倒是听说有一些框架可用,不过目前还不打算用,还是想自己先探索一下,也可以理解的深一些。  回复  更多评论   

# re: 顿悟 - 基于事件驱动模型架构Flex程序 2007-10-15 14:15 烈焰波痕

说Flex是披上B/S外衣的C/S,也许吧。但要我说的话,是以Server端的开发思路开发Client。
如果要用Flex开发RIA, 客户端的MVC模式是必须存在的,而不仅仅是Event驱动,Event是一种控制流,但是根本上Model的建模才是最主要的,这要求不仅仅在Server端建模,而且在Client端也需要建模,而不再是以前B/S那样,客户端仅仅是一个表现层和用户交互层。
之所以以前B/S开发忽略了pub/sub,那是因为它在客户端本地根本就没有建模,本地根本就是一个SnapShot。在服务器端开发MVC可能没有事件么?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: