﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-逆水深寒-随笔分类-flex</title><link>http://www.blogjava.net/cjwang-21/category/40994.html</link><description>我是一只弱小的毛毛虫，想像有一天可以成为强壮的挖土机，
拥有挖掘梦想的神奇手套。。。</description><language>zh-cn</language><lastBuildDate>Tue, 21 Jul 2009 14:31:19 GMT</lastBuildDate><pubDate>Tue, 21 Jul 2009 14:31:19 GMT</pubDate><ttl>60</ttl><item><title>个人对flex框架的看法！</title><link>http://www.blogjava.net/cjwang-21/archive/2009/07/21/287779.html</link><dc:creator>逆水深寒</dc:creator><author>逆水深寒</author><pubDate>Tue, 21 Jul 2009 14:03:00 GMT</pubDate><guid>http://www.blogjava.net/cjwang-21/archive/2009/07/21/287779.html</guid><wfw:comment>http://www.blogjava.net/cjwang-21/comments/287779.html</wfw:comment><comments>http://www.blogjava.net/cjwang-21/archive/2009/07/21/287779.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cjwang-21/comments/commentRss/287779.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cjwang-21/services/trackbacks/287779.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 前一段时间，曾经做过一点flex的开发工作，最初使用的是<span style="color: red;">cairngorm</span>，后来研究了一下 <span style="color: red;">pureMvc</span>，并进行了部分改造。<br />
由于只是初步涉足flex领域，所以只能提出一点自己的看法，并不具有说服力。<br />
&nbsp; &nbsp; <span style="color: red;">cairngorm</span> 前端的控件监听用户的行为，只是监听，并不会做任何反应。控件监听以后调用Commands来做相应的事情，Command做了所有工作。把业务逻辑委托到 Bussiness Delegates中，Command调用Business Delegate 后，Business Delegate 通过Service Locator来找到相应的RPC services，然后执行实现从服务器端取数据。<br />
&nbsp;&nbsp;&nbsp; 在Model Locator 保存状态并且能使Model检测到View的变化。这样一来用户操作就能直接影响Model。 <br />
&nbsp;&nbsp;&nbsp; 它的体系主要包含下面几部分（具体用法就不做分析了）：<br />
<p>&nbsp;&nbsp;&nbsp; 1. Business(业务逻辑部分) </p>
<p>&nbsp;&nbsp;&nbsp; 2. Command(命令部分) </p>
<p>&nbsp;&nbsp;&nbsp; 3. Control(控制部分) </p>
<p>&nbsp;&nbsp;&nbsp; 4. Model(数据模型) </p>
<p>&nbsp;&nbsp;&nbsp; 5. View(界面视图) </p>
<p>&nbsp;&nbsp;&nbsp; 6. VO(ValueObject) </p>
<br />
&nbsp;&nbsp;&nbsp; 使用<span style="color: red;">cairngorm</span> 对于整个事件的流程会比较的清晰。个人认为它的整个流程很符合人类的思维方式。但是在实际开发中却感觉 每当添加一个事件的时候，就要去写event command delegate，事件一多就会感觉重复写这些东西很烦。这时候就开始考虑更换一下框架，于是在头的指导下去看了<span style="color: red;">pureMvc</span>框架。<br />
&nbsp;&nbsp;&nbsp; 学了两天后，就深深喜欢上<span style="color: red;">pureMvc</span>了，哈哈！<br />
&nbsp;&nbsp;&nbsp; 顾名思义。pureMvc 就是纯的mvc框架，许多人都错误地把PureMVC误认为它是一个Flash的MVC框架或者是Flex的MVC框架。既然它是一个纯框架，那么，它就不仅仅是支持某种特定
的语言，它的设计是与语言无关的。它支持了好多种常用的编程语言。<br />
&nbsp;&nbsp;&nbsp; <span style="color: red;">pureMvc</span>的层次结构比<span style="color: red;">cairngorm</span>清晰的多，严格的MVC三层结构。 <br />
&nbsp;&nbsp;&nbsp; 1、Model保存对Proxy对象的引用，Proxy负责操作数据模型，与远程服务通信存取数据。
<p>&nbsp;&nbsp;&nbsp; 2、View保存对Mediator对象的引用。由Mediator对象来操作具体的视图组件（View
Component，例如Flex的DataGrid组件），包括：添加事件监听器，发送或接收Notification ，直接改变视图组件的状态。</p>
<p>&nbsp;&nbsp;&nbsp; 3、Controller保存所有Command的映射。Command可以获取Proxy对象并与之交互，通过发送Notification来执行其他的Command。</p>
<p>&nbsp;&nbsp;&nbsp; <span style="color: red;">pureMvc</span>采用了&#8220;观察者模式&#8221;（被观察者是不关心观察者是谁的），通过消息机制，来维持command 与 mediator的关系，将它们之间的耦合度降到最低。notification机制也是我最喜欢<span style="color: red;">pureMvc</span>的一个方面。</p>
<br />
<br />
<img src ="http://www.blogjava.net/cjwang-21/aggbug/287779.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cjwang-21/" target="_blank">逆水深寒</a> 2009-07-21 22:03 <a href="http://www.blogjava.net/cjwang-21/archive/2009/07/21/287779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>