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. 《JavaScript高级程序设计》读书笔记 ---创建对象

    虽然Object 构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码.为解决这个问题,人们开始使用工厂模式的一种变体. 工厂模式工厂 ...

  2. 在js中拼接<a>标签,<a>标签中含有onclick事件,点击无法触发该事件

    我们在<a>标签中添加事件一般是onclick="editUser()" 这样添加,在html页面上是行的通的 但是如何你是在js中拼接<a>标签并在< ...

  3. maven项目构建

    Maven是apache的一个开源项目.是一个用来把源代码构建成可发布的构件的工具. Maven的功能非常强大,可以认为是一个项目管理工具,不仅仅是一个构建工具. Maven本身的核心很小,但是可以在 ...

  4. jquery 实现 点击一个按钮添加多个div

    <script type="text/javascript"> var blockNum=10; $(document).ready(function(){ var p ...

  5. Caf音频文件混合

    一.两个同样时常的caf音频文件,可以通过下面的代码混合 二.代码地址: https://github.com/liqiushui/AudioRecorderCafMix  

  6. Spring入门学习(一)

    Spring的主要功能是控制反转和面向切面编程,下面我们就来编写第一个spring的程序来体验一下控制反转 首先是加载配置文件 <?xml version="1.0" enc ...

  7. agnentX学习存在疑问?

    在RFC2741中这样定义: 4.3中有如下段落: A general architectural division of labor between master agent and  subage ...

  8. Visual Studio 2013 新增web项目IIS Express的64位版   转载来源http://www.cnblogs.com/jianyus/p/3524335.html

    使用Visual Studio 2012开发SharePoint的应该都遇到过下面的错误“SharePoint 在32位进程中不受支持”,而怎么修改目标平台都不好使,因为VS 2012所配备的IIS ...

  9. python3 随机数

    random库 random.random()返回n,则 0 <= n < 1的小数. random.uniform(a,b)    返回n ,则 a <= n <= b的浮点 ...

  10. 一把刀终极配置Win7/8版 v2.0 绿色版

    软件名称: 一把刀终极配置Win7/8版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win8 / Win7 软件大小: 1.3MB 图片预览: 软件简介: 一把刀终极配置 For Win ...