PureMVC框架的目标很明确,就是把程序分为低耦合的三层:Model、View和Controller。

通过使用PureMVC后,我们的代码将集中分为以下几个部分:Façade、Command、Mediator、Proxy以及UI部分,还有一些数据结构的定义如Value Object,所有核心的逻辑都在Command、Mediator和Proxy中。

1.      Façade:

管理着Controller、Model和View,并且通过他们建立起Notification和Command以及Notification和Mediator之间的消息映射。

其中Controller、Model和View都是在框架中实现,对用户来讲是不可见的。

一般一个Application都有一个Façade子类,并在系统初始化的时候进行Façade的初始化。

有3个比较重要的Protected初始化函数:

initializeController() – 初始化Notification和Command之间的映射

如registerCommand(LOGIN, LoginCommand);

initializeModel() – 初始化Model层,主要是Proxy的注册

如registerProxy(new SearchProxy());

initializeView() – 初始化View层,主要是Mediator,并Mediator指定具体的Notification Body,通常就是具体的UI view

如registerMediator(new ApplicationMediator());

通常Proxy和Mediator都是在收到具体Notification后第一次调用的时候进行注册,特别是Mediator,它需要一个对UI view的具体引用,在façade中无法得到

2.      Command

一般处理系统主要的Business Logic。通过Façade中的Controller注册并侦听每个Notification,当收到某个Notifiaction后,Controller会实例化一个Notification对应的Command类对象,然后调用Command的execute()方法并将Notification作为参数传递给它。

Command包括两种SimpleCommand和MacroCommand,实际上MacroCommand就比SimpleCommand多维护一个subCommands数组,在调用MacroCommand的execute方法是,会遍历该数组并按顺序调用每个command的execute方法

在Command里可能会处理以下逻辑:

A.     注册或删除Mediator、Proxy以及其他Command

B.     发送Notification通知其他Command或者Mediator做出响应

C.     获取Proxy和Mediator对象,直接操作它们

3.      Mediator

Mediator是界面UI部分和系统其他部分交互的中介。它的主要职责是处理UI和其他Mediator或者Command发出的Notification。

Mediator通过2种方式监听着系统发出的消息

  1. 普通的addEventListener(eventName, onHandler)
  2. 定义感兴趣的Notification和收到Notification后的处理函数

如下代码:

override public function listNotificationInterests():Array{

return [

ApplicationFacade.MY_CLICK

];

}

override public function handleNotification(notification:INotification):void{

switch(notification.getName())

{

case ApplicationFacade.MY_CLICK:

myView.text.text = notification.getBody() as String;

break;

}

}

PureMVC 框架总结收录的更多相关文章

  1. (转载)puremvc框架之proxy

    (转载)http://www.cnblogs.com/yjmyzz/archive/2010/08/01/1789769.html 上一篇 puremvc框架之Command 里,已经学习了如何利用C ...

  2. Unity3d中PureMVC框架的搭建及使用资料

    1.下载PureMVC框架 https://github.com/PureMVC/puremvc-csharp-multicore-framework https://github.com/PureM ...

  3. Unity编程笔录--ulua+PureMVC框架简单热更新使用

    ulua+PureMVC框架简单热更新使用 前言: 1:作者官网论坛 首先介绍的是这个框架是一位大牛  骏擎[CP]  jarjin   写的,据说原本是"非常多人不知道怎么使用Ulua,所 ...

  4. Unity3d + PureMVC框架搭建

    0.流程:LoginView-SendNotification()---->LoginCommand--Execute()--->调用proxy中的函数操作模型数据--LoginProxy ...

  5. pureMVC与strangeIoc框架对比

    前言 最近有机会了解到了StrangeIoc框架,就拿来跟自己比较熟悉的pureMVC进行一下简要的对比.这两套开源框架都是基于MVC模式的扩展,pureMVC是一个跨平台跨语言的MVC轻量级应用框架 ...

  6. pure MVC框架目标与好处

    框架一瞥 PureMVC是一个为创建基于经典MVC元设计模式应用的轻量级框架. 此框架是开源且免费的,已经被AS2,AS3,Java,C#以及其他流行语言所实现.这也允许在多样的平台上开发,包括: l ...

  7. 【AS3 Coder】任务七:初涉PureMVC——天气预报功能实现

    转自:http://www.iamsevent.com/post/36.html AS3 Coder]任务七:初涉PureMVC——天气预报功能实现 使用框架:AS3任务描述:了解PureMVC框架使 ...

  8. 基于HTML5的SLG游戏开发( 三):认识PureMVC

    在游戏开发中,对于一般网络游戏,由于需要多人协同开发,每个人负责不同的模块开发,为了减少耦合,需要用来一些MVC框架,减少模块之间的耦合.我们现在使用的mvc框架是pureMVC.pureMVC的官网 ...

  9. pureMVC简单示例及其原理讲解一(开篇)

    pureMVC是一个MVC框架,皆在最大限度的减少MVC间的耦合性.本人刚刚接触pureMVC时感到一头雾水,不知从何入手,也不知道从何学习.好在本人有耐性且能看懂英文技术文档,面向对象的编程能力也比 ...

随机推荐

  1. Cron表达式的详细用法

    字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / L W C 月份 1-12 或者 JAN- ...

  2. MUI判断网络连接以及监听网络变化JS

    来源:netChange问题:怎么判断网络状态 MUI用于获取当前设备的网络类型 function plusReady(){ var types = {}; types[plus.networkinf ...

  3. Servlet综述

    Servlet 是在服务器上运行的小程序.这个词是在 Java applet 的环境中创造的.虽然后者已很少被使用,但 servlet 却发展的很好.是一般面试都会常考的知识. 由来 servlet ...

  4. Linux下安装vnstat流量统计

    1. 下载安装 cd /data/software wget http://humdi.net/vnstat/vnstat-1.11.tar.gz tar zxf vnstat-1.11.tar.gz ...

  5. Java中三种常见的注释(注解) Annotation

    Java为我们提供了三种Annotation方便我们开发. 1 Override-函数覆写注解 如果我们想覆写Object的toString()方法,请看下面的代码: class Annotation ...

  6. JAVA监听

    http://www.cnblogs.com/xdp-gacl/p/3961929.html 不要按汉字的字面意思理解这东西,其实它就是把某个操作绑到了某个按纽上,当你按那个按纽的时候,它所绑定的操作 ...

  7. RTL-SDR基础环境安装

    安装 cmake and libusb apt-get install cmake apt-get -dev 安装 RTL-SDR sudo apt-get install rtl-sdr kali已 ...

  8. Velocity China 2016 Web 性能与运维大会:构建快速、可扩展的弹性网站

    Velocity China 2016 Web 性能与运维大会是一场关于构建快速.可扩展的弹性网站所需要的Web性能.运维及开发运维的训练.大会将于2016年12月1日在北京拉开帷幕,此次大会被众多业 ...

  9. 2016年团体程序设计天梯赛-决赛 L1-5. 是不是太胖了(5)

    据说一个人的标准体重应该是其身高(单位:厘米)减去100.再乘以0.9所得到的公斤数.已知市斤是公斤的两倍.现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……) 输入格式: ...

  10. c# socket传输struct类型

    data结构体类型 public struct datas    { public string test1; public string test2;    } //socket服务器端 publi ...