PureMVC(JS版)源码解析11:Model类

PureMVC

这篇文章分析PureMVC三个核心类Model类。Model类的构造函数及工厂函数【即getInstance()方法】和View类、Controller类是一样的,这里就不重复讲解了,只不过它把mediatorMapcommandMap变成了proxyMap

Model类保存了所有Proxy的引用,Proxy只能发送消息,不能接受消息,所以Model类的结构相对于ViewController简单许多。

我们先看一下Model类的registerPorxy()方法:

1
2
3
4
5
6
Model.prototype.registerProxy= function(proxy)
{
proxy.initializeNotifier(this.multitonKey);
this.proxyMap[proxy.getProxyName()]= proxy;
proxy.onRegister();
};

registerProxy()方法里面调用了Proxy对象的onRegister()方法。

同样,还有removeProxy()/retrieveProxy()/hasProxy()等方法, 具体用途看方法名就可以知道,其实现过程和View/Controller类”同义”方法一样,实现方式就不贴代码了,大家可以自己看看代码。

因为,Model类的设计和View/Controller在很多地方是类似的,就不一一分析,可以比照阅读源码。

有用就打赏一下作者吧!