PureMVC(JS版)源码解析(十一):Model类
这篇博文讲PureMVC三个核心类——Model类。Model类的构造函数及工厂函数【即getInstance()方法】和View类、Controller类是一样的,这里就不重复讲解了,只不过它把mediatorMap或commandMap变成了proxyMap。
Model类保存了所有Proxy的引用,Proxy只能发送消息,不能接受消息,所以Model类的结构相对于View和Controller简单许多。
我们先看一下Model类的registerPorxy方法:
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类的思维导图: