PureMVC(JS版)源码解析08:Proxy类

PureMVC

上篇文章,分析与视图相关联的Mediator类,接下来分析与数据相关联的Proxy类。

关于Proxy类的作用,在Proxy类源码中,有这么一段注释:

1
2
* In PureMVC, Proxy classes are used to manage parts of the application's data 
* model.

翻译成中文就是,在PureMVC中,Proxy类用来管理应用的数据模型。

Proxy类的结构很简单,一个和Mediator类功能一样的NAME静态成员,还有一个data属性,用来存储proxy管理的数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* @ignore
* The Proxys name.
*
* @protected
* @type String
*/
Proxy.prototype.proxyName= null;

/**
* @ignore
* The Proxy's data object.
*
* @protected
* @type Object
*/
Proxy.prototype.data= null;

这两个属性都有get/set方法(getProxyName()/setData()/getData())。

接下来,看看Proxy类的构造函数:

1
2
3
4
5
6
7
8
function Proxy(proxyName, data)
{
this.proxyName= proxyName || this.constructor.NAME;
if(data != null)
{
this.setData(data);
}
};

Proxy类通过构造函数为proxyNamedata属性赋初值。

Proxy类继承Notifer类,因此它可以发送消息,但它是一个纯粹的通知者,它不具备接受消息的功能,这一点需要记住。

1
2
Proxy.prototype= new Notifier;
Proxy.prototype.constructor= Proxy;

另外,和Mediator类一样,Proxy类也要在facade中注册,它也有onRegister()/onRemove()方法,这里就不在陈述,具体用法和Mediator类的onRegister()/onRemove()用法一样。

总结

Proxy类的结构很简单,只需要记住两点:

  • data属性,可以用来存储它所管理的data model
  • 可以发送消息,不能接受消息
有用就打赏一下作者吧!