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

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

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

我们先看一下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在很多地方是类似的,就不一一讲解,可以比照阅读源码,最后贴出Model类的思维导图:

pureMVC

Ravior wechat
微信公众号:万物为媒, 关注一个技术人员的成长之路
写的不错, 点个赞吧!