PureMVC 官方文档翻译(一)
最近在学习PureMVC框架,感觉最权威的还是阅读官方文档,顺便翻译了下全当记笔记了。
PureMVC概览
这篇文档他讨论PureMVC框架的类和接口,使用UML来阐述它们的角色、职责和协作。
PureMVC框架有一个非常细小的目标一一就是帮助你把应用程序编码之间的关联分离成明确的三层:模型层,视图层和控制层。
经典MVC设计模式的实现把应用程序以3个单例的形式呈现。在PureMVC中第四个单例Facade通过一个简单的接口为程序提供了通信便利,简化了开发。
Model层这里叫Proxy, Proxy提供了API来管理数据模型层(包括远程父物数据查找)。
View层这里叫Mediator,Mediator模式适配和管理视图组件。(用户接口)
Controller这里叫Command, Command没有自主权,并且只有当需要时被创建。
Facade 初始化和缓存Model, View 和 Controller这几个核心组件,并且提供了一个单独的地方来访问它们的公有方法。

Facade类使得Proxies, Mediators 和Commands 以松耦合的方式来彼此通信,没必要直接的引用或访问框架中的核心。
当我们为程序创建一个具体的Facade实现时,我们可以容易的与Facade交互,给使用API的开发者以最少的细节来成功的使用框架。
Model, View, Controller 这三个核心角色分别实现了IModel, IView和IController接口。 Facade实现了IFacade, 以组合方式实现了所有的核心接口。(IModel, IView和IController)
View, Mediators 和View组件。
View类以单例的方式被实现并且提供了具体的IMediator实例的访问。
Mediators 帮助我们创建和复用现有的用户接口组件,使得我们不必要关注PureMVC的实现细节。具体的Mediators必须实现IMediator接口,通常以继承的方式来实现。
视图组件用来显示数据或者接受用户手势。以一个Flash程序为例,它们通常使用事件和暴露一些属性给具体的Mediator来通信、监视和管理。一个Mediator连接这一个视图组件和它的数据并且和以它为代表的系统的剩下部分进行通信。
当一个具体的Mediator被注册到View的时候,Mediator可以被它感兴趣的Notification查询。Mediator类必须返回它期望被通知的Notifications的数组的名字。
因为Mediator必须实现IMediator接口,具体的Mediator将有一个handleNotification方法。当Mediator注册到View的时候,一个Observer实例被创建并且注册到这个数组中的每一个Notification.因此,无论什么时候只要有一个Mediator感兴趣的Notification被发送,Mediator的handleNotification方法就会被调用。
Mediator框架类实现了INotifier,因此有一个sendNotification方法,这个方法带着参数给一个新的Notification,构建这个Notification并且使用IFacade单例的实例发送它。
Mediator的保护属性facade初始化来注册IFacade实例,因此Mediator必须在具体的Facade初始化之后被构建。

未完,待续...
PureMVC 官方文档翻译(一)的更多相关文章
- Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点
Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Flume官方文档翻译--Flume 1.7.0 User Guide (unr ...
- Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)
Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw ...
- 蓝牙4.0——Android BLE开发官方文档翻译
ble4.0开发整理资料_百度文库 http://wenku.baidu.com/link?url=ZYix8_obOT37JUQyFv-t9Y0Sv7SPCIfmc5QwjW-aifxA8WJ4iW ...
- GreenDao官方文档翻译(上)
笔记摘要: 上一篇博客简单介绍了SQLite和GreenDao的比较,后来说要详细介绍下GreenDao的使用,这里就贴出本人自己根据官网的文档进行翻译的文章,这里将所有的文档分成上下两部分翻译,只为 ...
- Aircrack-ng官方文档翻译[中英对照]---Airdecap-ng
Aircrack-ng官方文档翻译---Airdecap-ng Description[简介] With airdecap-ng you can decrypt WEP/WPA/WPA2 capt ...
- Aircrack-ng官方文档翻译[中英对照]---Airmon-ng
Aircrack-ng官方文档翻译---Airmon-ng Description[简介] This script can be used to enable monitor mode on wire ...
- Aircrack-ng官方文档翻译[中英对照]---Aireplay-ng
Aircrack-ng官方文档翻译---Aireplay-ng[90%] Description[简介] Aireplay-ng is used to inject frames. Aireplay- ...
- Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET
OSNIT_百度百科 Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET Salt Stack 官方文档翻译 分类: 自动运维 2013-04-02 11 ...
- Retrofit官方文档翻译
Retrofit官方文档翻译 官方文档网址 http://square.github.io/retrofit/ 介绍 Retrofit 将你的 HTTP API 转换为 Java 接口. public ...
随机推荐
- luo3372线段树模板的分块做法
题目大意 请你维护一个有n个元素的整数序列,要求支持区间查询&区间修改 对于100%的数据,\(1<=n<=10^5\) 分析 正常做法是线段树维护区间修改.区间查询,今天我要讲的 ...
- jQuery (01) 浏览器的事件模型
浏览器的事件模型 由网景公司引入的 DOM0 级事件模型 把事件处理程序绑定到 DOM 元素的属性上: ele.onclick(); ele.onDOMContentLoad(); ele.onloa ...
- react_app 项目开发 (8)_角色管理_用户管理----权限管理 ---- shouldComponentUpdate
角色管理 性能优化(前端面试) 需求:只要执行 setState(), 就会调用 render 重新渲染.由于有时调用了 setState,但是并没有发生状态的改变,以致于不必要的刷新 解决: 重写 ...
- [LeetCode] Design HashSet 设计HashSet
Design a HashSet without using any built-in hash table libraries. To be specific, your design should ...
- 【ASP.NET】Validation 服务器控件
Validation 服务器控件 Validation 服务器控件用于验证输入控件的数据.如果数据未通过验证,则向用户显示错误消息. 创建 Validation 服务器控件的语法是: <asp: ...
- 宝塔linux面版安装网站环境 自动化
[root@localhost ~]# yum install -y wget && wget -O install.sh http://download.bt.cn/install/ ...
- 怎样将PDF文件转换成Excel表格
PDF文件怎样转换成Excel表格呢?因为很多的数据信息现在都是通过PDF文件进行传输的,所以很多时候,信息的接受者都需要将这些PDF文件所传输的数据信息转换成Excel表格来进行整理,但是我们应该怎 ...
- 【转】tars源码漫谈第1篇------tc_loki.h (牛逼哄哄的loki库)
loki库是C++模板大牛Andrei写的, 里面大量运用模板的特性, 而tc_loki.h借用了loki库的部分代码, 形成了一个基本的文件tc_loki.h, 来看看: #ifndef __TC_ ...
- Libvmi实现分析
LibVMI是一个专注于读写虚拟机内存的自省库,它能够监视虚拟机底层的运行细节并将其还原.LibVMI支持对Xen及KVM虚拟化平台上的运行虚拟机进行自省操作,针对KVM虚拟化平台,LibVMI对QE ...
- springboot+spring security +oauth2.0 demo搭建(password模式)(认证授权端与资源服务端分离的形式)
项目security_simple(认证授权项目) 1.新建springboot项目 这儿选择springboot版本我选择的是2.0.6 点击finish后完成项目的创建 2.引入maven依赖 ...