最近在学习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 官方文档翻译(一)的更多相关文章

  1. 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 ...

  2. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw ...

  3. 蓝牙4.0——Android BLE开发官方文档翻译

    ble4.0开发整理资料_百度文库 http://wenku.baidu.com/link?url=ZYix8_obOT37JUQyFv-t9Y0Sv7SPCIfmc5QwjW-aifxA8WJ4iW ...

  4. GreenDao官方文档翻译(上)

    笔记摘要: 上一篇博客简单介绍了SQLite和GreenDao的比较,后来说要详细介绍下GreenDao的使用,这里就贴出本人自己根据官网的文档进行翻译的文章,这里将所有的文档分成上下两部分翻译,只为 ...

  5. Aircrack-ng官方文档翻译[中英对照]---Airdecap-ng

    Aircrack-ng官方文档翻译---Airdecap-ng   Description[简介] With airdecap-ng you can decrypt WEP/WPA/WPA2 capt ...

  6. Aircrack-ng官方文档翻译[中英对照]---Airmon-ng

    Aircrack-ng官方文档翻译---Airmon-ng Description[简介] This script can be used to enable monitor mode on wire ...

  7. Aircrack-ng官方文档翻译[中英对照]---Aireplay-ng

    Aircrack-ng官方文档翻译---Aireplay-ng[90%] Description[简介] Aireplay-ng is used to inject frames. Aireplay- ...

  8. Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET

    OSNIT_百度百科 Salt Stack 官方文档翻译 - 一个想做dba的sa - 博客频道 - CSDN.NET Salt Stack 官方文档翻译 分类: 自动运维 2013-04-02 11 ...

  9. Retrofit官方文档翻译

    Retrofit官方文档翻译 官方文档网址 http://square.github.io/retrofit/ 介绍 Retrofit 将你的 HTTP API 转换为 Java 接口. public ...

随机推荐

  1. Python WMI获取Windows系统信息

    #!/usr/bin/env python # -*- coding: utf-8 -*- #http://www.cnblogs.com/liu-ke/ import wmi import os i ...

  2. python与RabbitMQ

    RabbitMQ 前言 什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用 ...

  3. 06-Python入门学习-元组、字典、集合类型

    一.元组 一:基本使用:tuple 1 用途: 记录多个值,当多个值没有改的需求,此时用元组更合适 2 定义方式: 在()内用逗号分隔开多个任意类型的值 t=(1,1.3,'xx',('a','b') ...

  4. jmeter 使用问题

    问题1:导入脚本失败,提示 解决:没有安装JMemter plugins manager插件,具体安装参考http://www.cnblogs.com/cxx1/p/7883820.html,第二步.

  5. [LeetCode] Subdomain Visit Count 子域名访问量统计

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

  6. Servlet 文件上传

    Servlet 可以与 HTML form 标签一起使用,来允许用户上传文件到服务器.上传的文件可以是文本文件或图像文件或任何文档. 本文使用到的文件有: 创建一个文件上传表单 下面的 HTML 代码 ...

  7. transient关键字的使用

    实例说明 在保存对象时,会将对象的状态也一并保存,然而有些状态是不应该被保存的,如表示密码的属性.此时可以使用transient关键字来修饰不想保存的属性. 关键技术 transient关键字用来防止 ...

  8. css 图片置灰

    .filterGray{ -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(10 ...

  9. 剑指offer——python【第38题】二叉树的深度

    题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 解题思路 想了很久..首先本渣渣就不太理解递归在python中的实现 ...

  10. Python自学知识点----Day01

    Linux 次方运算符** 操作系统:1).直接操纵硬件 2).将操纵硬件封装成系统调用,利用应用程序进行调用 操作系统:windows  用户群体大 macos      适用开发人员 Linux  ...