一起搞懂PureMVC(二)

  前几天坐车回家,就没有更新内容了,今天上来看看顺便写一下第二篇。

  书接前文……

 

  第二步 基础知识  

  PureMVC中的概念常常让大多数的我们感到羞涩难懂,但是一旦你掌握了基本功以后,你会马上灵活地使用它。PureMVC的架构是使用通知(notification)来执行某些命令,不论他们是在模块(model),视图(view)或者是控制器(controller)里面。这些通知(notification)由名字和一个可选的主体构成。主体参数允许你从视图(view)(例如一个被点击的按钮)发送到一个能够接着将数据传给模块(model)(返回相应的数据)的控制器(controller)。

  这个概念是指PureMVC拥有一个非常明确的用于指示源文件如何建立的架构。

  • 代理(Proxy)---module

  Proxy就是一个模块。这个模块,可能不为人们所知,是一个用于处理所有数据传输的类,例如加载XML数据,存储并发送。不像mediator或command,proxy从不用于监听或处理notification;他们只会发送notification。这就意味着为了command或者mediator获得一些数据,这数据要么通过notification的主体发送回called。要么从façade的proxy的实例中获取。Proxy将他们的数据存储在公共类VO(value objects)里。他们只是一些拥有公共变量使得我们能够通过我们的proxy获取和更新数据的简单类。

  • 中介(Mediator)---view
  Mediator是用于表示view行为的类。在你的应用程序中你可能拥有很多view,并且所有的view都是DisplayObject类的子类(要不然他们就不能称为view)。Mediator用于将你的view添加到你的base(viewComponent是传给mediator的第一个参数)并且它将处理所有与view相关的输入或输出的notification。这表明mediator是在用户触发view的事件后(如点击按钮)负责你通知你的应用程序或者是负责传递来自于proxy的数据到view中去更新。一个mediator监听和处理notification本身以及当他们突然被请求而不是加载时注册新的mediator到façade。
  • 命令(command)---controller
  Command其实就是一个controller。虽然它不直接监听notification,但是它却有从façade连到它的notification管道。这意味着一个command需要一个判断语句来使他能够决定接受哪个notification和下一步它该做什么。同样的,command还能够发送notification。它们还能够注册proxy,mediator和更多的command。
  希望到此能够给你一个简单的理解PureMVC,为了更直观的看出notification是如何在你的应用程序中传递的,请看PureMVC架构图。

  如果你认为学习这些东西很艰巨也没关系,不过你一旦坐下来并希望计划你的程序的时候,你就会很快理解我们将要做什么。

  1. 我们的基类将会调用facade
  2. façade类接着会调用start up command
  3. start up command会注册我们的proxy和application mediator
  4. proxy将会引用他的value object并等待进一步的notification proxy
  5. application mediator将会注册progress mediator
  6. progress mediator会创建progress view然后发送notification用来加载数据
  7. façade会接收该notification并把它传递给数据command
  8. data command将会过滤notification并告诉proxy去加载数据
  9. Proxy 将会通知progress view,正在加载数据(过程将会显示出来),整个过程以及结束时,mediator都会处理
  10. proxy接着会发送notification,使得mediator去处理
  11. application mediator将会注册urls view 使得我们可以创建按钮给用户点击
  12. urls view mediator 会从proxy传递数据给urls view 并添加urls view到舞台
  13. 用户点击按钮,将会由mediator来处理并发送notification给proxy
  14. proxy会接着重新加载数据,并将状态传给process view
  15. proxy将接着重新发送notification给应用application mediator来处理
  16. application mediator将会告诉urls view mediator隐藏urls view并注册images view
  17. images view mediator将会根据proxy的数据创建images view  

  这可能看起来复杂,但它其实只是一个将你的程序函数分解成小块的例子。

 

  未完待续……

  

posted on 2012-01-19 21:55  liusy1988  阅读(1958)  评论(0编辑  收藏  举报

导航