`

PureMVC学习笔记一:概念

阅读更多

 

(待修改,未稳定)

 

一、PureMVC概述

PureMVC是开源的MVC框架。

PureMVC最先用AS3实现(以下均指AS3版),

库、demo和源代码下载在(见右面的download链接):

http://trac.puremvc.org/PureMVC_AS3/

PureMVC分两个版本:

Standard version(标准版):使用Facade单实例维护proxy, mediator和command的所有缓存。

MultiCore version(多核版):使用多例的方式维护标准版四个角色各自的单实例。

所谓四个角色,就是Facade(外观)、Model(模型)、View(视图)、Controller(控制器)。

后三者的首字母合起来就是MVC(模型-视图-控制器)模式。

除了FMVC外、PureMVC还实现一种类似于AS3事件机制的通知系统。

通知不是用Event类实现。

不是使用addEventListener,而是用对象注册的方式。

不是使用dispatchEvent,而是用sendNotification对MVC核心发送通知。

所以PureMVC框架能有效减弱视图与视图之间,视图与MVC内核之间的强耦合。

 

二、PureMVC用户代码和核心代码的公共依赖类和接口(合计24个)

1. PureMVC的用户代码可能会依赖于以下类和接口。

(注意,用户方只有INotification,而没有Notification的概念。

另外接口类的命名统一使用I开头)

(1)全局部分:

org.puremvc.as3.patterns.facade

org.puremvc.as3.interfaces.IFacade

外观(facade是法语词汇)。单实例。提供访问PureMVC核心的唯一途径。

它是使用PureMVC解耦机制的唯一手段(当然还需要下面类和接口)

(2)视图部分:

org.puremvc.as3.patterns.mediator.Mediator

org.puremvc.as3.interfaces.IMediator

中介。

(3)控制器部分:

org.puremvc.as3.interfaces.INotification

通知。

org.puremvc.as3.patterns.command.SimpleCommand

org.puremvc.as3.interfaces.ICommand

命令。

org.puremvc.as3.patterns.command.MacroCommand

宏命令。

org.puremvc.as3.patterns.command.AsyncCommand

org.puremvc.as3.interfaces.IAsyncCommand

异步命令。

注意IAsyncCommand大多时候用在PureMVC的核心代码中,不需要用户代码实现。

org.puremvc.as3.patterns.command.AsyncMacroCommand

异步宏命令。

(4)模型部分:

org.puremvc.as3.patterns.proxy.Proxy

org.puremvc.as3.interfaces.IProxy

代理。

 

 

2. 除以上外,PureMVC的核心代码依赖于以下类和接口。

注意,下面的类都是程序员不需要关心的(除非看调试堆栈)

(1)控制器部分:

org.puremvc.as3.core.Controller

org.puremvc.as3.interfaces.IController

控制器。单实例。

(org.puremvc.as3.interfaces.IAsyncCommand)

(多数用于核心代码,由AsyncCommand实现)

(2)模型部分:

org.puremvc.as3.core.Model

org.puremvc.as3.interfaces.IModel

模型。单实例。

(3)视图部分

org.puremvc.as3.core.View

org.puremvc.as3.interfaces.IView

视图。单实例。

org.puremvc.as3.patterns.observer.Notifier

org.puremvc.as3.interfaces.INotifier

通知者,Mediator的基类。

org.puremvc.as3.patterns.observer.Observer

org.puremvc.as3.core.IObserver

观察者。由View(视图单实例)和Controller(控制器单实例)创建和使用。

目的是保存和访问IMediator的handleNotification方法。

org.puremvc.as3.patterns.observer.Notification

通知的实现。不会出现在用户代码中。

 

 

(待补充)

 

更新日志:

2011-02-18 修改INotifier和Notifier的名字空间(搞错了,写成多核版)

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics